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