1. 程式人生 > >正向代理和方向代理的區別

正向代理和方向代理的區別

代理,字面意義上來說,他就是相當於一個中間人這麼個概念。

正向代理:

把整個流程比如成去飯店吃飯,我們也就是使用者(客戶端)去飯店吃飯(傳送一個請求),你知道你要吃的是魚香肉絲(請求),可是你不能自己做,那麼就需要讓大廚(服務端)給你做,可是去了飯店,大廚是在後臺的,你也不能直接去告訴大廚,因為你沒有許可權(服務端在後臺)這時候就需要服務員(代理)來幫忙告訴說某某某客戶(客戶端)要一盤魚香肉絲(請求/訪問資源)大廚(服務端)收到給做好然後交給服務員(代理)服務員拿到魚香肉絲(資源/響應)給客戶(使用者端)送回來。

好,簡單的流程結束。這樣大家明白代理的作用了吧。

反向代理:

繼續比喻,說我們(客戶端)今天要在你飯店吃一個大閘蟹(請求),服務員(代理)收到這個請求發現大廚做不了這個大閘蟹,可是又需要掙錢,這怎麼辦呢?服務員這麼一想,隔壁那家飯店可以做,而我也和那家大廚(另一個服務端)有交集,那我去讓另一家大廚給做怎麼樣?好。於是服務員就去告訴另一家大廚說你幫我做一個大閘蟹(請求)吧,隔壁大廚說好呀,可以。就做好交給服務員。那麼這個時候,這個服務員(反向代理)就成為了反向代理,因為他去呼叫別的服務端。這個時候我們(客戶端)通常來說是沒必要知道這大閘蟹怎麼來的,只要有就好。

注意:

那這個服務員是誰都可以當的嗎?肯定不可以呀,所以這個服務員(代理)需要在飯店任職(配置)之後才可以。也就是代理需要配置。

那麼反向代理需要嗎?答案是不需要的

那麼反向代理的優點就體現出來了,我不需要配置,而且我不僅只能在一家呼叫請求,我可以向多個服務端去發出請求。而且反向代理還可以向多臺後端伺服器進行負載平衡。 

總結來說:

正向代理是一個位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理髮送一個請求並指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設定才能使用正向代理。