各種代理IP背後的原理

講解各種代理IP背後的原理:知道代理IP的人越來越多了,不管是單純的換IP,還是進行大量的數據採集,或者是遊走於灰色之中,都是離不開代理IP這個工具的,但是很少人會關注各種代理IP背後的原理,今天就聽小編來給大家普及下吧。

一、代理類型
代理IP一共可以分成4種類型。經常聽說的透明代理IP,匿名代理IP,高匿名代理IP,還有一種就是混淆代理IP。最基礎的安全程度來說呢,他們的排列順序應該是這個樣子的高匿>混淆>匿名>透明。
二、代理原理
代理類型主要取決於代理服務器端的配置。不同配置會形成不同的代理類型。在配置中,這三個變量REMOTE_ADDR,HTTP_VIA,HTTP_X_FORWARDED_FOR是決定性因素。
1)REMOTE_ADDR
REMOTE_ADDR表示客戶端的IP,但是它的值不是由客戶端提供的,而是服務器根據客戶端的IP指定的。
如果使用瀏覽器直接訪問某個網站,那麼網站的web服務器(Nginx、Apache等)就會把REMOTE_ADDR設爲客戶端的IP地址。
如果我們給瀏覽器設置代理,我們訪問目標網站的請求會先經過代理服務器,然後由代理服務器將請求轉化到目標網站。那麼網站的web代理服務器就會把REMOTE_ADDR設爲代理服務器的IP。
2)X-Forwarded-For(XFF)
X-Forwarded-For是一個HTTP擴展頭部,用來表示HTTP請求端真實IP。當客戶端使用了代理時,web代理服務器就不知道客戶端的真實IP地址。爲了避免這個情況,代理服務器通常會增加一個X-Forwarded-For的頭信息,把客戶端的IP添加到頭信息裏面。
X-Forwarded-For請求頭格式如下:
X-Forwarded-For:client,proxy1,proxy2
client表示客戶端的IP地址;proxy1是離服務端最遠的設備IP;proxy2是次級代理設備的IP;從格式中,可以看出從client到server是可以有多層代理的。
如果一個HTTP請求到達服務器之前,經過了三個代理Proxy1、Proxy2、Proxy3,IP分別爲IP1、IP2、IP3,用戶真實IP爲IP0,那麼按照XFF標準,服務端最終會收到以下信息:
X-Forwarded-For:IP0,IP1,IP2
Proxy3直連服務器,它會給XFF追加IP2,表示它是在幫Proxy2轉發請求。列表中並沒有IP3,IP3可以在服務端通過RemoteAddress字段獲得。我們知道HTTP連接基於TCP連接,HTTP協議中沒有IP的概念,RemoteAddress來自TCP連接,表示與服務端建立TCP連接的設備IP,在這個例子裏就是IP3。
3)HTTP_VIA
via是HTTP協議裏面的一個header,記錄了一次HTTP請求所經過的代理和網關,經過1個代理服務器,就添加一個代理服務器的信息,經過2個就添加2個。
三、代理的選擇
普通的匿名代理IP能隱藏客戶機的真是IP,但是也會改變我們的請求信息,服務器端有可能會認爲我們使用了代理。不過使用此種代理時,雖然被訪問的網站不能知道客戶端的IP地址,但仍然可以知道你在使用代理,當然某些能夠偵測IP的網頁仍然可以查到客戶端的IP。
而高度匿名代理請添加鏈接描述不改變客戶機的請求,這樣在服務器看來就像有個真正的客戶瀏覽器在訪問它,這時客戶的真實IP是隱藏的,服務器端不會認爲我們使用了代理。
因此,爬蟲程序需要使用到爬蟲代理ip時,儘量選擇普通匿名代理和高匿名代理。另外,如果要保證數據不被代理服務器知道,推薦使用HTTPS協議的代理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章