網頁效能、快取與 CDN

正向代理(a forward proxy)

想像一間辦公室,員工不直接訂購用品,而是把需求交給單一的採購人員,由他代為下單、備有常用品的存貨、並套用公司對「什麼可以買」的規則。對外面的供應商來說,每筆訂單看起來都來自採購人員,而非個別員工。正向代理就是網路流量的那位採購人員:一台位於用戶端那側的伺服器,代表它後方的用戶端向更廣的網際網路發出請求。

機制上,瀏覽器不直接連到網站,而是連到代理並請它取得頁面;代理接著連到原始伺服器、取回回應、再傳回來。因為一群人的所有請求都匯流經過它,正向代理是同時做好幾件事的天然地點:快取(儲存熱門頁面,讓重複請求由本地回應)、過濾與存取控制(封鎖或記錄某些網站)、以及隱藏身分(原始伺服器看到的是代理的 IP 位址,而非每個用戶端的)。它服務的是用戶端,且通常由用戶端那側設定或強制套用——校園網路、企業閘道、隱私服務。

為什麼重要:正向代理是代理能夾在連線中的兩種方式之一,而這個區別很重要。正向代理向外界代表用戶端;反向代理向用戶端代表伺服器。同樣的機械(一個轉送請求的中間者),相反的視角。常見用途是企業網頁閘道、內容過濾器、以及在慢速或昂貴連結上的快取代理。一個誠實的提醒:正向代理能看見並記錄所有未加密的東西,而對 HTTPS 它只能轉送加密的串流(透過 CONNECT 方法),除非組織安裝自己的憑證去攔截它——而那是一個重大的信任與隱私決定。

一家公司把所有員工的瀏覽流量都導經一台正向代理。當第一個人打開某新聞首頁,代理取得並快取它;接下來五十位同事都從代理即時取得,而新聞伺服器自始至終只看到來自代理 IP 的一個請求。

一位採購人員服務眾多用戶端:代理代表他們面對網際網路。

正向代理與反向代理與其說是不同軟體,不如說是不同位置。正向代理是代表用戶端被選用、面向外部;別把它和反向代理搞混,後者是由網站營運者放在自己伺服器前面的。

又稱
client-side proxyweb proxy正向代理代理伺服器