網絡代理之正向代理、反向代理和透明代理

正向代理

一般意義上的代理均是指的正向代理服務器,其概念如下:

正向代理是一個位於客戶端和目標服務器之間的代理服務器(中間服務器)。爲了從目標服務器取得內容,客戶端向代理服務器發送一個請求,並且指定目標服務器,之後代理向目標服務器轉發請求並且將獲得的內容返回給客戶端。正向代理的情況下客戶端必須要進行一些特別的設置才能使用。

正向代理服務的作用

1. 替代訪問——訪問本無法直接訪問的資源

現實生活中出於安全、隱私及其他種種因素考慮,某些服務器資源無法直接被訪問,這個時候就需要藉助正向代理服務器作爲跳板進行訪問。比如我們很熟悉的 VPN 就使用了正向代理技術。

2. 加速訪問目標服務器

舉個身邊的例子,校園網的宿舍網速往往非常感人,因爲在學校的路由限制了帶寬,所以導致訪問外網資源的帶寬也被限制,但是如果在校園網內搭建一個高帶寬的代理服務器,這個服務器出口帶寬不被人爲限制,然後我們電腦使用這個代理服務器上網的話,加速訪問外網資源了。

3. Cache作用

Cache(緩存)技術和代理服務技術是緊密聯繫的(不光是正向代理,反向代理也使用了Cache(緩存)技術。

還是上面的例子,假如某宿舍的學生 A 通過這個代理服務器下載了某個動作電影,而在此之前同學 B 已經通過這個代理服務器下載過,這個時候代理服務器可以將這個電影保存在代理服務器上一段時間,A 去下載的時候直接返回給 A,而不需要再跑去目標服務器重新下載。這個過程就是 Cache 命中,如果客戶端和代理之間帶寬夠高,也可以起到加速訪問的作用,達到秒下載的效果。

4. 客戶端訪問授權

比如在一些機構內部不能隨意訪問外網,這個時候就可以用正向代理服務器,爲不同的用戶分配固定 IP 或者 ID 身份識別,客戶端通過設置代理服務器訪問網絡時,代理服務器會檢查網絡請求的客戶端來源,非允許的客戶端請求數據包會被直接丟棄。

5. 隱藏訪問者的行蹤

顯然,如果我們通過一個代理服務器去訪問某個網站資源,網站服務器只能看到代理服務器在發請求,並不知道其背後真正的請求者,這就可以在一定程度上起到隱匿行蹤的作用。

**總結:**正向代理是一個位於客戶端和原始服務器(origin server)之間的服務器,爲了從原始服務器取得內容,客戶端向代理髮送一個請求並指定目標(原始服務器),然後代理向原始服務器轉交請求並將獲得的內容返回給客戶端。客戶端必須設置正向代理服務器,當然前提是要知道正向代理服務器的IP地址,還有代理程序的端口。一般代理服務器還可以設置用戶認證。

反向代理

反向代理正好與正向代理相反,對於客戶端而言代理服務器就像是原始服務器,並且客戶端不需要進行任何特別的設置。
客戶端向反向代理的命名空間(name-space)中的內容發送普通請求,接着反向代理將判斷向何處(原始服務器)轉交請求,並將獲得的內容返回給客戶端,使得這些內容就好似他自己一樣,一次客戶端並不會感知到反向代理後面的服務,也因此不需要客戶端做任何設置,只需要把反向代理服務器當成真正的服務器就好了。

舉個例子,用戶訪問 http://suooL.net/404
但suool.net上並不存在 404 頁面,於是它是偷偷從另外一臺服務器上取回來,然後作爲自己的內容吐給用戶,但用戶並不知情,這很正常。這個域名所對應的服務器就使用了反向代理的功能。

反向代理服務器的作用

1.保護和隱藏資源服務器

2.負載均衡
CDN 技術的就是利用了反向代理技術

兩者區別

用途上來講:

正向代理的典型用途是爲在防火牆內的局域網客戶端提供訪問Internet的途徑。
正向代理還可以使用緩衝特性減少網絡使用率。
反向代理的典型用途是將防火牆後面的服務器提供給Internet用戶訪問。
反向代理還可以爲後端的多臺服務器提供負載平衡,或爲後端較慢的服務器提供緩衝服務。

另外,反向代理還可以啓用高級URL策略和管理技術,從而使處於不同web服務器系統的web頁面同時存在於同一個URL空間下。

安全性來講:

正向代理允許客戶端通過它訪問任意網站並且隱藏客戶端自身,因此你必須採取安全措施以確保僅爲經過授權的客戶端提供服務。

反向代理對外都是透明的,訪問者並不知道自己訪問的是一個代理。

透明代理

透明代理的意思是客戶端根本不需要知道有代理服務器的存在,它改編你的 request fields(報文),並會傳送真實 IP。注意,加密的透明代理則是屬於匿名代理,意思是不用設置使用代理了。

GFW 顯然實現了透明代理。

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