何謂WWWProxyServer

Client端以HTTP向Server要求,Server隨即回給Client端所需的資料。這個Server就是Client所要求的資源所在的位置,可能在很遠的機器上。

講到Proxy,那麼該先講講什麼叫Firewall。在一個封閉的網路中,人們為了安全的考量,不讓這個網路內的機器直接與外界溝通,只允許它們先連到某一台主機,然後再由那台主機與外界交流。如此若是有人想要crack這個網路中的資訊,因為整個網路和外界是封閉的,只有Firewall和外界交流,所以只要把Firewall的安全性加強, 整個區域網路的安全性也就變得較可靠了。即使這道防火牆被人家突破,那也只限於此,不能再深入到整個區域網路。

Proxy的是代理,委任的意思,在WWW世界中的術語中,它指的是一個HTTP的Server,通常用在設有firewall的網路機器上,可以說是有Firewall網路中所有WWWClient的代理人。

當client端想要某一篇文章或是網路上的資源時,它得先向ProxyServer提出要求,然後再由這個代理人將要求送出去。而外界的機器傳回來的訊息同樣要透過Proxy這台機器才能轉送給Client.所以ProxyServer在有Firewall的網路世界中是很重要的。

那麼對於沒有防火牆的網路,Proxy還有什麼用處嗎?嗯...它的用處就在於Cache上。若有一台ProxyServer上Cache了很多遠端的資料,那麼作為此ProxyServer的Client,就不必大老遠地再重新連到地球的另一端,辛辛苦苦地再把資料傳回來,只要使ProxyServer將它所cache到的資料送回給Client端即可。因為剛剛講到Client端發出request時,會先連到ProxyServer,如果我們將proxy設定成cacheserver,它在每一次接到client端的要求時,server會去連遠端的機器,把那邊的資料抓回來存在自己的硬碟上,再把這份資料傳給client。

乍聽之下好像不大對勁,這樣不是反而多了一道手續嗎?即要在proxy上存一份,又要再把它送給Client?其實若是這份資料在很遠處,需要極長的時間才能傳回來的話,那麼這多存一份的overhead就可以忽略。況且,好處在後頭呢!

因為當其他的Client或許也想要這份資料,那麼這個Client第一步當然是向Proxy要求囉!ProxyServer接到要求,首先檢查一下看看自己的Cache中有沒有這份資料,而不必急著將這個要求往外送。若是所要求的資料剛好有別人要求取得過,而且有存在硬碟上,那就不必再大老遠地向遠端請求,只要把這份資料回給Client就好啦。