HTTP 與 HTTPS 代理:了解兩者的分別

HTTP 和 HTTPS 代理處理流量的方式截然不同。了解兩者的區別有助您選擇合適的代理類型,並避免常見的安全誤解。

HTTP vs HTTPS proxy comparison
1HTTP 代理基礎

HTTP 代理的功能及運作方式

HTTP 代理專為處理標準未加密的網絡流量而設計。當您的瀏覽器設定為使用 HTTP 代理,並請求 HTTP(非 HTTPS)頁面時,代理會收到您的完整請求——包括 URL、HTTP 標頭及請求內容。它可以在將內容轉發至原始伺服器之前讀取、檢查、修改或快取這些內容。代理也會接收完整回應,並可在將其傳回您的瀏覽器之前進行修改。

這種完全可見的架構使 HTTP 代理成為內容過濾、快取及流量分析的強大工具。企業過濾代理利用此功能,根據 URL 模式封鎖非工作網站的存取。網絡應用防火牆用它來檢查並封鎖惡意 HTTP 請求,使其在到達應用伺服器之前被攔截。CDN 快取節點用它來提供已快取的內容,無需聯繫原始伺服器。讀取和修改流量的能力是所有這些使用情境的核心。

其限制在於 HTTP 代理只理解 HTTP 協定。它們無法原生處理 HTTPS 流量,無法代理 BitTorrent 或電郵等非 HTTP 協定,也無法處理現代網絡流量的全部範疇——而現代網絡流量已絕大多數轉向 HTTPS。純 HTTP 代理對於當今大多數網站毫無用處,這就是為什麼幾乎所有現代代理服務都支援 HTTPS 隧道的 CONNECT 方法,以及通常支援全協定的 SOCKS5。

  • 完整流量可見性:HTTP 代理可讀取、檢查及修改未加密 HTTP 流量的每個位元組。
  • 內容快取:HTTP 代理可快取回應,以減少頻寬消耗並縮短回應時間。
  • URL 過濾:企業代理使用 HTTP 檢查,根據策略規則封鎖 URL。
  • 標頭操作:可新增、移除或修改 HTTP 請求及回應標頭。
  • 僅限 HTTP:無法原生處理 HTTPS——需要使用 CONNECT 方法隧道處理加密網站。
  • 相關性下降:隨著 HTTPS 現在覆蓋 95% 以上的網絡流量,純 HTTP 代理功能的重要性已降低。
HTTP proxy architecture
2HTTPS 代理與 CONNECT

HTTPS 代理如何處理加密流量

HTTPS 代理——或更準確地說,透過 CONNECT 方法支援 HTTPS 隧道的代理——在無法讀取內容的情況下處理加密的網絡流量。當您的瀏覽器想要透過代理存取 HTTPS 網站時,它會向代理發送純文字 CONNECT 請求,識別目標主機(例如 CONNECT github.com:443 HTTP/1.1)。代理建立到 github.com:443 的 TCP 連線,然後以「200 連線已建立」回應,之後成為透明中繼。

從那時起,代理在您的瀏覽器和目標之間盲目地雙向轉發加密位元組。TLS 握手直接在您的瀏覽器和目標伺服器之間進行——代理無法解密或檢查此流量,因為它沒有目標伺服器的私有 TLS 金鑰。這保留了端對端加密:目標看到的是您瀏覽器的 TLS 用戶端問候,而非代理的。代理僅透過傳遞加密串流。

CONNECT 隧道方式意味著,雖然您的流量內容受到 TLS 保護,但某些元數據仍然可見。CONNECT 請求本身是純文字:任何監視您與代理之間連線的人都可以看到您正在連線到 github.com:443——即使他們看不到您在那裡做什麼。TLS 握手中的 SNI(伺服器名稱指示)也會洩露目標主機名稱。若要完全隱藏元數據,VPN 比 HTTPS 代理更適合,因為它甚至會加密目標主機名稱。

  • CONNECT 方法:允許代理在不讀取內容的情況下建立 HTTPS 隧道的 HTTP 機制。
  • TLS 端對端:HTTPS 代理保留您的瀏覽器與目標伺服器之間的 TLS 連線。
  • 代理作為盲目中繼:建立 CONNECT 後,代理無法讀取它轉發的加密流量。
  • 目標仍然可見:CONNECT 請求以純文字向網絡觀察者洩露目標主機名稱。
  • SNI 暴露:TLS 伺服器名稱指示即使在加密握手中也會洩露目標網域。
  • 完整隱藏使用 VPN:只有 VPN 才能同時加密內容和元數據,包括目標主機名稱。
HTTPS proxy CONNECT tunnel
3SSL 檢查代理

SSL 檢查:代理解密 HTTPS 流量的情況

某些企業和政府代理部署使用 SSL 檢查(亦稱 HTTPS 攔截或 TLS 檢查)來解密和檢查 HTTPS 流量。這與標準 HTTPS 代理不同:SSL 檢查代理並非充當盲目隧道,而是執行中間人解密。代理向您的瀏覽器提供自己的 TLS 憑證(由安裝在員工裝置上的企業根憑證授權機構簽署),同時與目標伺服器建立自己的 TLS 連線。

從用戶的角度來看,瀏覽器在網址欄顯示鎖頭圖示和 HTTPS。但憑證由公司的內部憑證授權機構簽署,而非由網站的真實憑證授權機構簽署。您的瀏覽器與代理之間的流量使用一個 TLS 工作階段加密;代理與目標伺服器之間的流量使用另一個單獨的 TLS 工作階段加密。代理在這兩個工作階段之間以明文讀取所有內容——記錄流量、掃描惡意軟體、封鎖違反政策的行為,或檢查數據外洩企圖。

SSL 檢查具有爭議性。在已向員工妥善披露的合法企業部署中,它確實有真實的安全用途——偵測惡意軟體下載、執行 DLP 政策,以及監控內部威脅。然而,它從根本上破壞了 HTTPS 的信任模型,而 HTTPS 承諾在用戶與網站之間提供端對端加密。若您在企業網絡上,發現網站憑證由內部憑證授權機構(而非 DigiCert 或 Let's Encrypt 等受信任的公共機構)簽署,則您的流量正在被檢查。

  • 企業攔截:SSL 檢查代理使用內部受信任的憑證授權機構憑證解密 HTTPS 流量。
  • 雙重 TLS 工作階段:一個 TLS 工作階段連接至用戶瀏覽器,另一個連接至目標——代理在兩者之間讀取明文。
  • 內部憑證授權機構憑證:用戶看到鎖頭圖示,但憑證由企業憑證授權機構(而非網站的憑證授權機構)簽署。
  • 合法用途:在已披露的企業環境中,用於惡意軟體偵測、DLP 執行及內部威脅監控。
  • 道德要求:SSL 檢查需要向員工完全披露,未經披露絕不可接受。
  • 偵測方法:在瀏覽器中查看憑證發行者——未知的內部憑證授權機構表示正在進行 SSL 檢查。
SSL inspection proxy
4選擇合適的類型

HTTP、HTTPS 或 SOCKS5:選擇使用哪種代理類型

對於大多數瀏覽現代網絡的個人用戶而言,相關的區別並非 HTTP 與 HTTPS 代理之爭——而是代理服務是否支援 HTTPS 隧道的 CONNECT 方法。幾乎所有信譽良好的商業代理供應商都提供支援透過 CONNECT 進行 HTTP 和 HTTPS 隧道的代理,在您的瀏覽器中以相同方式設定。許多服務上的「HTTP 代理」標籤指的是代理設定協定,而非對未加密流量的限制。

當您需要代理非瀏覽器應用程式或任何非 HTTP/HTTPS 的流量時,SOCKS5 代理是更好的選擇。如果您正在設定 torrent 用戶端、SSH 隧道工具、數據庫用戶端或自訂 Python 腳本,SOCKS5 是唯一能在這些應用程式範疇中可靠運作的代理類型。SOCKS5 也處理 HTTP 代理無法處理的 UDP 流量。大多數商業代理供應商免費提供 SOCKS5 及 HTTP 代理選項。

對於注重隱私的使用情境,請注意每種代理類型所洩露的資訊。使用 CONNECT 隧道的 HTTPS 代理以純文字洩露目標主機名稱。SOCKS5 代理可設定為在代理伺服器端解析 DNS(使用 socks5h:// 而非 socks5://)以避免 DNS 洩漏。這兩種類型都不提供 VPN 所具備的全面流量加密。對於敏感瀏覽——銀行、醫療、私人通訊——無論您可能同時使用哪種代理類型,VPN 仍是合適的工具。

  • HTTP/HTTPS 代理用於瀏覽器:任何支援 CONNECT 的代理都能在瀏覽器中處理現代 HTTPS 網站。
  • SOCKS5 用於應用程式:對非瀏覽器應用程式、torrent 用戶端、腳本及基於 UDP 的協定使用 SOCKS5。
  • SOCKS5 的 DNS 洩漏:使用 socks5h://(遠端 DNS)防止 DNS 查詢在代理隧道外洩漏。
  • 兩者均無法取代 VPN:若需要完整流量加密和元數據隱藏,請使用 VPN 而非任何代理類型。
  • 供應商同時支援兩者:大多數商業代理供應商提供 HTTP/HTTPS 代理和 SOCKS5——按使用情境選擇。
  • 企業過濾:HTTP 檢查代理適用於企業內容過濾——在已妥善披露的情況下部署。
閱讀完整的 SOCKS5 代理指南 →
Choosing HTTP vs HTTPS vs SOCKS5 proxy

尋找適合您需求的代理

在選擇供應商之前,探索我們的完整代理指南,了解所有類型、協定及使用情境。

Related VPN Articles