代理服務器是網絡信息的中轉站。一般情況下,使用網絡瀏覽器直接去鏈接其它Internet站點并取得網絡信息時,須送出請求信號來得到應答,然后對方再把信息傳送回來。代理服務器是介于瀏覽器和Web服務器之間的一臺服務器,有了它之后,瀏覽器不是直接到Web服務器去取回網頁而是向代理服務器發出請求,請求信號會先送到代理服務器,由代理服務器來取回瀏覽器所需要的信息并傳送給你的瀏覽器。而且,大部分代理服務器都具有緩沖的功能,就好像一個大的Cache,它不斷將新取得數據包存到它本機的存儲器上,如果瀏覽器所請求的數據在它本機的存儲器上已經存在而且是最新的,那么它就不重新從Web服務器取數據,而直接將存儲器上的數據傳送給用戶的瀏覽器,這樣就能顯著提高瀏覽速度和效率。
代理服務器不僅可以實現提高瀏覽速度和效率的功能,它還可以實現網絡的安全過濾、流量控制(減少Internet使用費用)、用戶管理等功能,因此它既是一種網絡防火墻技術,同時也可以解決許多單位連接Internet引起IP地址不足的問題。
工作原理:
代理服務器作為一種既是服務器又是客戶機的中間程序,主要用于轉發客戶系統的網絡訪問請求。但是,代理服務器不只是簡單地向真正的因特網服務器轉發請求,它還可以控制用戶的行為,對接收到的客戶請求進行決策,并根據過濾規則對用戶請求進行過濾。
通過代理服務器,網絡管理員可以實現比用包過濾路由器更嚴格的安全策略。不同于使用通用的包過濾路由器來管理通過防火墻的因特網服務流向,代理服務器通過在網關上為每項需要的應用安裝專用的代碼(代理服務)來工作。如果網絡管理員沒有為某一特殊服務安裝代理服務代碼,該服務就不會被支持,也不會通過防火墻轉發相應的客戶請求。并且,這種代理服務器碼能被配置成僅支持某項服務的網絡管理員認為可以接受的那部分特征,而不支持其他的特征。
通過代理服務器共享上網從技術實現角度來說可以分為硬件共享上網和軟件共享上網兩種方式,從代理服務器工作的層次的角度來說可以分為應用層代理、傳輸層代理和socks代理。
應用層代理
這里主要介紹基于HTTP協議的代理服務器。HTTP是一個屬于應用層的面向對象的協議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統。根據HTTP協議規定,當客戶端使用代理模式時,發送的請求命令格式如下:methodhttp://hostname/path/?/fiIename。
當客戶端同網絡代理服務系統建立連接后,代理服務器將收到請求命令,這時代理服務器應該截取主機名部分進行域名解析,并同該主機建立連接,將去掉主機名部分的請求命令轉發給它,等待它做出響應,然后將得到的響應轉發給客戶端,最后斷開連接。其模型如圖3所示。
傳輸層代理
傳輸層代理直接與TCP層交互,更加靈活。要求代理服務器具有部分真正服務器的功能:監聽特定TCP或UDP端口,接收客戶端的請求同時向客戶端發出相應的響應。
socks代理
Socks是一個客戶/服務器環境的代理協議。它包括兩個主要的組件,Socks服務器和Socks客戶庫。Socks服務器實現在應用層,Socks客戶庫實現在客戶的應用層與傳輸層之間。一個代理服務器為客戶機與應用服務器建立連接,代理服務器在客戶與應用服務器之間中轉數據,從應用服務器的角度來看,代理服務器是客戶。
當客戶想建立到應用服務器的連接時,先連接到代理服務器。應用服務器的地址和端口號通過代理協議被傳遞到代理服務器,然后,代理服務器再連接到應用服務器。一旦到應用服務器的連接被建立,代理服務器在客戶與應用服務器之間中轉數據。
目前,有兩個版本的Socks協議,版本4和版本5。Socks版本4被簡寫為“Socks V4”,Socks版本5被簡寫為“Socks V5”。