正向代理和反向代理的形象理解

大雄45發表於2020-04-20
導讀 代理伺服器分為正向代理伺服器和反向代理伺服器,他們都是充當客戶端和目標伺服器的中介,都是由客戶端傳送請求到代理伺服器,再由代理伺服器傳遞請求給目標伺服器,最終再由代理伺服器傳遞響應資訊給客戶端。他們結構上很類似,到底是啥區別呢?
正向代理是個媒人

正向代理,意思是一個位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理傳送一個請求並指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。

正向代理和反向代理的形象理解正向代理和反向代理的形象理解

什麼時候會用到正向代理呢?舉個例子,如果你厭煩了國內的搜尋網站,想 fan qiang 上Google怎麼辦?一個方法就是買個國外的代理伺服器,這個代理伺服器是可以訪問Google的。因此,我們就可以請求該代理伺服器,告訴它幫我們訪問Google的頁面,並把Google的頁面再返回給我們,如此就可以繞過**了。這個中介伺服器就是典型的正向代理伺服器。

因此,正向代理,就是客戶端委託一個伺服器作為自己的代表,向目標伺服器發起請求。正向代理就像古時的媒人,男方若看上一個姑娘,並不能直接向姑娘家提親,必須要找個媒人代為辦理,謂之明媒正娶。

由於是代理伺服器代替客戶端發起請求,因此 Server 並不知道真正的 Client 是誰(當然如果代理伺服器公佈了Clien的話也可以)。因此,利用正向代理,客戶端可以對 Server 隱藏自己的地址,從而避免受到可能的攻擊。

代理伺服器還有一個優點:他可以提前快取 Server 的內容,Client 的某些請求可由代理伺服器直接返回,從而提高客戶端的訪問速度。

另外,如果 Client 要透過正向代理訪問目標伺服器,必須要對代理伺服器進行設定,設定代理伺服器的 IP 地址和代理程式的埠,才能訪問代理伺服器。

反向代理是個替身

反向代理伺服器也是一箇中介伺服器,充當 Client 和 Server 溝通的橋樑。但是他和正向代理有什麼區別呢?如果說正向代理伺服器像是一個媒人,那麼反向代理伺服器就像是養在深閨人未識的大家閨秀的一個替身,替她出面把關應酬。然而在追求者(Client)看來,Client 並不知道自己打交道的是個替身,他以為自己訪問的是目標 Server,因為很多網站公佈的訪問地址其實就是代理伺服器的訪問地址。看下圖:

正向代理和反向代理的形象理解正向代理和反向代理的形象理解

為什麼需要一個反向代理伺服器作為一個橋樑呢?考慮這種情況:出於安全的考慮,我們不想把 Server 直接暴露出來,而是放在內網中。這時 Client 在外網無法就無法 Server 了。因此,我們就可以新增一臺中間伺服器,連線內外網,這樣就可以允許外網使用者訪問,同時可作為防火牆對外部請求進行限制,提高內部伺服器的安全性。

除了防火牆外,反向代理伺服器還有一個典型的用途就是作為負載均衡伺服器,根據目標伺服器的工作負荷情況,將請求分發到合適的伺服器。

總結

正向代理和反向代理區別總結如下:

正向代理是對客戶端的代理,由客戶端設立,客戶端了解代理伺服器和目標伺服器,但目標伺服器不瞭解真正的客戶端是誰;使用正向代理可達到 突破訪問限制、提高訪問速度、對伺服器隱藏客戶端IP等目的;
反向代理是對伺服器的代理,由伺服器設立,客戶端不瞭解真正的伺服器是誰,使用反向代理可達到負載均衡、保障服務端安全、對客戶端隱藏伺服器IP等目的。

原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2687280/,如需轉載,請註明出處,否則將追究法律責任。

相關文章