應用級與回路級代理
應用級代理是已知代理服務為哪個應用提供的代理,它能了解並解釋應用協議中的命令,而回路級代理在客戶端與服務器之間不解釋應用協議中的命令就建立了連接回路。大多數應用級代理的最新版本是一個像sendmail的應用,由它來完成存儲轉發協議。大部分最新回路級代理是一個新式的代理網關,這個網關對外像一個代理,對內象一個過濾路由器。
應用級代理使用修改的過程,回路級代理使用修改的客戶程序。這與代理的實用性有關。為了實現一個代理連接,你必須知道連接的方向。一個混合網關可以很容易地阻止連接,但一個代理主機只能接收連接,並從得到的信息中判斷它要往那裡繼續進行連接。一個回路級代理不能解釋應用協議,需要通過其它方式給它提供信息。因為客戶程序的能力是很有效的,應用級代理通常是為了利用它們了解應用協議的優點,因此他們能使用修改的過程。而回路級代理,通常無法使用修改的過程,只能使用修改的客戶程序。
盡管還沒有修改的應用級代理,但確實存在著修改的回路級代理,如pluggw就是一個修改的過程並且是一個回路級代理。它連接的目標地址完全取決於源地址和與之連接的源及目標端口。
一個回路級代理的優點在於它能夠為各種不同的協議提供服務。大多數回路級代理服務器也是公共代理服務器,它們幾乎對於任何協議都支持,但不是每個協議都能由回路級代理輕易實現的,如FTP協議就是這樣。它要求從客戶端的數據端口連接到服務器上,並要求作協議級的調整和應用級的知識。回路級代理的缺點在於它對因代理而產生的事件幾乎無法控制,像包過濾一樣,它為源地址和目的地址提供連接,但是不能判斷出經過它的命令是否安全或超出了協議的范圍。回路級代理會很容易地被服務器設置的、分給其它服務器的端口號所蒙騙。
公共與專用代理服務器
雖然“應用級”和“回路級”是常用的術語,但是我們更加注重“公共”和“專用”代理服務器的區別。一個專用代理服務器只適用於單個協議,而一個公共代理服務器則適用多個協議。實際上專用代理服務器是應用級的,而公共代理服務器是屬於回路級的。由於存在一個了解許多協議的公共的應用級代理服務器,或一個專用的回路級代理服務器(只提供一個服務,但了解多個協議),因此采用“專用”和“公共”這兩個術語要比“應用級”和“回路級”好理解一些。
智能代理服務器
如果一個代理服務器不光是轉發請求,同時還能夠做其它許多事情的話,這樣的代理服務器就稱為智能代理服務器,如CERN HTTP代理服務器還能夠將數據保存在緩存中,以便同樣的數據可以不必再從因特網上下載了。代理服務器(特別是應用級代理服務器)可以比其它方式提供更好的日志和訪問控制功能。代理服務器的功能在不斷迅速地發展,現在已有許多代理服務器除了提供基本功能外,還在不斷增加新的功能。對於一個專用的應用級代理來說很容易升級到智能代理服務器,但對一個回路級的代理來說則較為困難。