共享字典:壓縮技術如何跟上代理化網絡的步伐
Cloudflare宣佈支持共享壓縮字典,通過增量壓縮僅傳輸文件差異,大幅減少冗餘數據傳輸。公開測試版將於2026年4月30日上線。
過去十年間,網頁的大小每年以6-9%的速度增長,這主要歸因於框架驅動的開發模式、豐富的交互體驗以及富媒體內容的普及。這一趨勢並未改變,但另一個因素正在加劇帶寬的浪費:代理(Agent)的興起。代理不僅頻繁爬取和消費網頁,還通過AI輔助開發加速了部署的迭代。這意味着每次部署後,大量客户端(包括瀏覽器和其他工具)需要重新下載幾乎相同的資源,造成冗餘數據的反覆傳輸。
Cloudflare今日宣佈了對共享壓縮字典(Shared Compression Dictionaries)的支持,旨在解決這一效率低下的問題。該技術通過增量壓縮(Delta Compression)僅傳輸文件差異,避免了重複下載完整資源。其核心機制是:服務器告知瀏覽器使用已緩存的舊版本作為字典,然後僅發送更新部分。例如,一個272KB的JavaScript文件,經過gzip壓縮後為92.2KB,而使用共享字典壓縮後僅需2.6KB——比gzip再減少97%,幾乎與文件差異本身相當。
這項技術並非全新嘗試。早在2008年,Google就在Chrome中推出了SDCH(Shared Dictionary Compression for HTTP),但因安全漏洞(如CRIME、BREACH攻擊)和架構問題(如同源策略衝突、CORS不兼容)而於2017年被放棄。經過十多年的標準化努力,現代規範RFC 9842解決了這些缺陷,強制要求字典僅在與資源同源時使用,從而基本消除了側信道攻擊的風險。目前Chrome和Edge已支持,Firefox正在跟進。
Cloudflare將分三個階段推出共享字典支持。第一階段(透傳支持)將於2026年4月30日開啓公開測試,Cloudflare將原樣轉發必要的HTTP頭(如Use-As-Dictionary、Available-Dictionary)和編碼(dcb、dcz),並正確緩存字典變體。第二階段,Cloudflare將代客户管理字典生成和增量壓縮,客户只需通過規則指定哪些資源應作為字典。第三階段則完全自動化:Cloudflare網絡根據流量模式自動識別適合增量壓縮的資源並生成字典,無需任何配置。實驗室測試顯示,對於僅含少量變更的JavaScript包,P99下載時間從gzip的161ms降至1ms(緩存未命中時),性能提升超過99%。
Cloudflare強調,共享字典將壓縮從“無狀態”變為“有記憶”,尤其適合當前代理化工具頻繁部署和大量機器流量並存的局面。這不僅節省帶寬,還降低CPU消耗,使網絡能夠更高效地擴展。隨着2026年4月30日測試版的臨近,Cloudflare邀請開發者通過演示站點“Can I Compress (with Dictionaries)?”體驗這一技術的潛力。
這一技術的意義在於,它從根本上改變了壓縮的範式。傳統壓縮算法(如gzip)是無狀態的,每次都重新壓縮整個文件;而共享字典則賦予壓縮“記憶”,利用客户端已有的緩存作為參考。在代理驅動的網絡環境中,這種有狀態壓縮不僅能減少單個響應的字節數,還能降低總傳輸次數,從而緩解硬件瓶頸。儘管標準化的道路漫長且充滿挑戰,但Cloudflare的實施方案使得這一技術對所有人都可及,包括那些沒有工程資源手動實現自定義字典的站點。