- a. Client 端向 Server 端發送一個數據需求封包;
- b. Server 端接收之後,先比對這個封包的『來源』與預計要前往的『目標』網站是否爲可接受? 如果來源與目標都是合法的,或者說,來源與目標網站我們的 Proxy 都能幫忙取得資料時,那麼 Server 端會開始替 Client 取得資料。這個步驟中比較重要的就是『比對政策』啦,有點像是認證的感覺啦;
- c. Server 首先會檢查自己快取 (新的數據可能在內存中,較舊的數據則放置在硬盤上) 數據, 如果有 Client 所需的數據,那就將數據準備取出,而不經過向 Internet 要求數據的程序;
- 最後當然就是將數據回傳給 Client 端!
- NAT 服務器的功能:就如同第九章提到的數據, Linux 的 NAT 功能主要透過封包過濾的方式, 並使用 iptables 的 nat 表格進行 IP 僞裝 (SNAT) ,讓客戶端自行前往因特網上的任何地方的一種方式。主要的運作行爲是在 OSI 七層協議的二、三、四層。由於是透過封包過濾與僞裝,因此客戶端可以使用的端口口號碼 (第四層) 較彈性;
- Proxy 服務器的功能:主要透過 Proxy 的服務程序 (daemon) 提供網絡代理的任務,因此 Proxy 能不能進行某些工作,與該服務的程序功能有關。 舉例來說,如果你的 Proxy 並沒有提供郵件或 FTP 代理,那麼你的客戶端就是無法透過 Proxy 去取得這些網絡資源。 主要運作的行爲在 OSI 七層協議的應用層部分(所謂的比較“高階”之意)
- 作爲 WWW 的網頁資料取得代理人:這是最主要的功能。
- 作爲內部區網的單點對外防火牆系統:
- 如果你的Proxy 是放在內部區網的 Gateway 上頭,那麼這部代理服務器就能夠作爲內部計算機的防火牆
- 節省單點對外的網絡帶寬,降低網絡負載:
- 當你的 Proxy 用戶很多時,那麼 Proxy 內部的快取數據將會累積較多。因此客戶端想要取得網絡上的數據時,很多將會從 Proxy 的快取中取得,而不用向因特網要求資料。 所以可以節省帶寬啊!
- 以較短的路徑取得網絡數據,有網絡加速的感覺:
- 例如你可以指定你的 ISP提供的代理服務器連接到國外,由於 ISP 提供的 Proxy 通常具有較大的對外帶寬,因此在對國外網站的數據取得上, 通常會比你自己的主機聯機到國外要快的多。此外,與上一點的快取數據也有關係啊!從內部硬盤取得的路徑總比對外的因特網要短的多啊!
- 透過上層代理服務器的輔助,達到自動數據分流的效果:
- 例如圖 17.1-4 所示,讓客戶端在不知不覺之間,就可以得到數據由不同 Proxy 取得的加速效果!
- 提供防火牆內部的計算機連上 Internet:就是上面提到的單點對外防火牆功能
- 容易被內部區網的人員濫用:
- 我們知道因特網上看到取得數據的人是 Proxy那部主機而不是客戶端計算機的 IP,因此可能會讓某些內部網絡使用人員開始利用你的 proxy 幹壞事,此時你就會很麻煩~ 所以,爲了杜絕這個狀況,強烈的建議多加登錄檔案分析的軟件,在管理上面會輕鬆很多!
- 需要較高超的設定技巧與除錯程序:
- 在設定服務器當中, Proxy 算是比較不容易設定好『效能』的一個服務器了!由於 Proxy 的 Cache 與他的『上層代理服務器』的關係是很緊密的, 萬一設定錯誤的話,很有可能反而讓你的Proxy 拖垮客戶端 WWW 的瀏覽速度!最嚴重的是造成無法聯機!
- 可能會取得舊的錯誤數據:
- 這個最容易發生了!由於曾經瀏覽過的網頁會被放置到快取, 並提供後續用戶的直接取得。 萬一因特網上面的那個網頁數據更新過呢?那時你會發現,怎麼客戶端無法看到更新後的資料? 就是因爲快取的問題。
- 我的 Client 端用戶不少,而且大部分僅需要 WWW 這個網絡服務而已;
- 我的 Proxy 還兼做防火牆的任務;
- 我的 Client 端常常需要聯機到傳輸速度很慢的網站,例如國外的網站;
- 我的 Client 端常常瀏覽的網站是『靜態』網站,而不是動態網站 (例如討論區的 PHP)。