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