ip代理服務(wù)器有三種實現(xiàn)方式:一是在應(yīng)用層實現(xiàn),相當(dāng)于應(yīng)用網(wǎng)關(guān),如web代理服務(wù)器、Socks代理服務(wù)器;二是在IP層或更低層實現(xiàn),通過轉(zhuǎn)發(fā)數(shù)據(jù)包完成http代理功能;三是通過改變系統(tǒng)調(diào)用的方式來實現(xiàn),比如微軟的Winsock代理服務(wù)器,在自己的電腦上安裝代理程序,程序會自動修改系統(tǒng)調(diào)用。由于Web代理服務(wù)器是目前應(yīng)用最廣泛的代理服務(wù)器,下面將主要針對Web代理服務(wù)器來說明代理服務(wù)器的實現(xiàn)原理。
Web代理服務(wù)器一般由過濾器和應(yīng)用程序兩部分組成。過濾器判斷接收到http請求是代理格式還是標(biāo)準(zhǔn)格式,如果是標(biāo)準(zhǔn)格式,則交給本地WWW服務(wù)器處理;如果是代理格式,將由代理應(yīng)用程序處理。代理應(yīng)用程序首先在代理緩沖區(qū)中搜索,如果數(shù)據(jù)存在且有效,則從緩沖區(qū)中取出數(shù)據(jù);如果沒有,連接到遠(yuǎn)程目標(biāo)服務(wù)器并獲取數(shù)據(jù)。無論代理服務(wù)器是從緩存還是從Internet遠(yuǎn)程服務(wù)器獲取數(shù)據(jù),它都會根據(jù)HTTP協(xié)議使用端口80將信息返回給請求者。
在HTTP通信鏈中,客戶端和目標(biāo)服務(wù)器之間通常有一些中轉(zhuǎn)代理服務(wù)器,它們提供對目標(biāo)資源的中轉(zhuǎn)訪問。一個HTTP請求可能由多個代理服務(wù)器轉(zhuǎn)發(fā),后一個服務(wù)器稱為前一個服務(wù)器的上游服務(wù)器。代理服務(wù)器根據(jù)用途和功能分為正向代理服務(wù)器、反向代理服務(wù)器和透明代理服務(wù)器。
轉(zhuǎn)發(fā)代理ip要求客戶端自己設(shè)置代理ip的地址。來自客戶端的每個請求都將被直接發(fā)送到代理服務(wù)器,代理ip將請求目標(biāo)資源。例如,為了訪問互聯(lián)網(wǎng),或者訪問一些被阻止的外國網(wǎng)站,防火墻中的局域網(wǎng)機(jī)器需要使用轉(zhuǎn)發(fā)代理ip。反向代理ip設(shè)置在服務(wù)器端,所以客戶端不需要做任何設(shè)置。
代理ip在Internet上接收連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將結(jié)果從內(nèi)部服務(wù)器返回給客戶端。在這種情況下,代理服務(wù)器看起來像一個真實的服務(wù)器。
只能在網(wǎng)關(guān)上設(shè)置透明代理ip。用戶訪問互聯(lián)網(wǎng)的數(shù)據(jù)報必須全部通過網(wǎng)關(guān)。如果在網(wǎng)關(guān)上設(shè)置了代理ip,代理ip顯然對用戶是透明的。透明代理ip可以看作是前向代理ip的一個特例。