1. 程式人生 > >透明代理、正向代理、反向代理的區別說明

透明代理、正向代理、反向代理的區別說明

代理方式有三種:正向代理、透明代理和反向代理。反向代理比較容易理解,畢竟是運維必掌握的知識,但是對正向代理、透明代理可能比較模糊,所以主要解惑正向代理和透明代理。

透明代理

透明代理(transparent proxy),看名字就知道這個代理伺服器是透明的,透明代理其實也叫做內網代理(inline proxy)、攔截代理(intercepting proxy)以及強制代理(force proxy)。透明代理和正向代理的行為很相似,但細節上有所不同。透明代理將攔截客戶端傳送的請求,攔截後自己代為訪問服務端,獲取響應結果後再由透明代理交給客戶端。一般公司內的上網行為管理軟體就是透明代理。

例如,客戶端要訪問www.baidu.com,如果是正向代理的方式,客戶端會指明它要交給正向代理服務,就像路由中說要交給閘道器一樣。如果是透明代理的方式,則是傳送出去,然後被透明代理攔截,客戶端以為請求的這個過程是自己完成的,並不知道是透明代理完成的。

正向代理

正向代理(forward proxy),看名字就知道是轉發代理。客戶端將請求轉發給正代伺服器,正向代理伺服器再負責轉發給服務端,響應時服務端先響應給正向代理伺服器,正向代理伺服器再轉發給對應的客戶端。也就是說,正向代理可以但不限於為區域網內客戶端做代理,它扮演的角色類似於NAT。

其實FQ上網時配置的代理目標就是正向代理。

正向代理和透明代理的區別

正向代理和透明代理的區別,細分起來還是有不少的,但主要幾點:

  • 正向代理時,客戶端明確指明請求要交給正向代理服務,也就是說要設定代理。而透明代理對客戶端是透明的,客戶端不知道更不用設定透明代理,但是客戶端發出去的請求都會被透明代理攔截。
  • 正向代理為了實現某些額外的需求,有可能會修改請求報文,但按照RFC文件的要求,透明代理不會修改請求報文。
  • 正向代理可以內網也可以外網,但透明代理都是內網。

反向代理

反向代理是為服務端轉發請求,客戶端將請求傳送至反向代理伺服器,反向代理伺服器再將請求轉發給真正的伺服器以處理請求,響應時後端真正的伺服器將處理結果傳送給反向代理,再由反向代理構建響應並響應給客戶端。