?
This document uses PHP Chinese website manual Release
在通過互聯(lián)網(wǎng)的不同網(wǎng)絡進行導航時,代理服務器和HTTP隧道有助于訪問萬維網(wǎng)上的內(nèi)容。代理可以位于用戶的本地計算機上,也可以位于用戶計算機與Internet上目標服務器之間的任何位置。本頁概述了一些關(guān)于代理的基礎知識,并介紹了一些配置選項。
有兩種類型的代理:正向代理(或隧道或網(wǎng)關(guān))和反向代理(用于控制和保護對服務器的訪問以進行負載平衡,身份驗證,解密或緩存)。
轉(zhuǎn)發(fā)代理或網(wǎng)關(guān),或者只是“代理”為客戶或一組客戶提供代理服務?;ヂ?lián)網(wǎng)上可能有成千上萬的開放式轉(zhuǎn)發(fā)代理。它們存儲和轉(zhuǎn)發(fā)互聯(lián)網(wǎng)服務(如DNS或網(wǎng)頁)以減少和控制該組使用的帶寬。
轉(zhuǎn)發(fā)代理也可以是匿名代理,并允許用戶在瀏覽Web或使用其他Internet服務時隱藏其IP地址。TOR(洋蔥路由器)通過多個代理匿名發(fā)送互聯(lián)網(wǎng)流量。
顧名思義,反向代理的作用與轉(zhuǎn)發(fā)代理的作用相反:轉(zhuǎn)發(fā)代理代表客戶端(或請求主機),反向代理服務器代表服務器。轉(zhuǎn)發(fā)代理可以隱藏客戶端的身份,而反向代理可以隱藏服務器的身份。反向代理有幾個用例,其中一些是:
負載均衡:將負載分配給多個Web服務器,
緩存靜態(tài)內(nèi)容:通過緩存圖片等靜態(tài)內(nèi)容來卸載Web服務器,
壓縮:壓縮并優(yōu)化內(nèi)容以加快加載時間。
代理可以使請求看起來好像是源自代理的IP地址。如果使用代理提供客戶端匿名,這可能很有用,但在其他情況下,原始請求中的信息會丟失。原始客戶端的IP地址通常用于調(diào)試,統(tǒng)計或生成依賴于位置的內(nèi)容。披露此信息的常用方法是使用以下HTTP標頭:
標準化標題:
Forwarded
包含代理服務器的面向客戶端的信息,這些信息在請求路徑中包含代理時發(fā)生了改變或丟失。
或事實上的標準版本:
X-Forwarded-For
標識通過HTTP代理或負載平衡器連接到Web服務器的客戶端的始發(fā)IP地址。X-Forwarded-Host
標識客戶端用于連接到代理或負載平衡器的原始主機請求。X-Forwarded-Proto
標識客戶端用于連接到代理或負載平衡器的協(xié)議(HTTP或HTTPS)。
要提供有關(guān)代理本身的信息(而不是關(guān)于連接到它的客戶端),Via
可以使用標題。
Via
代理添加了正向和反向代理,并且可以出現(xiàn)在請求頭和響應頭中。
隧道通過封裝數(shù)據(jù)通過公共網(wǎng)絡傳輸專用網(wǎng)絡數(shù)據(jù)和協(xié)議信息。HTTP隧道正在使用較高級別的協(xié)議(HTTP)來傳輸較低級別的協(xié)議(TCP)。
HTTP協(xié)議指定一個調(diào)用的請求方法CONNECT
。它啟動與請求資源的雙向通信,并可用于打開隧道。這就是HTTP代理服務器后面的客戶端如何使用SSL訪問網(wǎng)站(即HTTPS,端口443)。但請注意,并非所有代理服務器都支持該CONNECT
方法,或僅將其限制為端口443。