Google Chrome正開發分享字典功能可大幅壓縮網站資源提高載入速度
Google Chrome 團隊向來只關注兩個問題:第一個如何減少記憶體使用量、第二個如何提高網站載入速度(玩笑,不過這些年谷歌在這些方面的變更是最多的)。現在Google正在研究一種新的共享字典壓縮技術來大幅提高網站資源的壓縮效率,從而進一步縮短網站的載入時間。
下面是一個簡單的例子:
假設網站使用Angular 框架構建,目前使用的框架版本為1.7.9 版,在沒有壓縮的情況下文件為172KiB,如果使用Brotli 壓縮演算法則可以將其體積縮小到53KiB,也就是獲得大約70% 的壓縮率。
此時開發者需要將框架版本從1.7.9 版升級到1.8.3 版,由於新版本的大小與舊版類似,因此採用Brotli 壓縮演算法後體積也類似。
但如果使用自訂的共享字典功能,就可以使用先前版本的資源字典來壓縮新版本的資源,這樣實際輸出的檔案大約只有4KiB,壓縮率高達98%,這可以大幅縮小瀏覽器需要下載的文件,從而提高網站的載入速度。
自訂共享字典技術:
Chrome 團隊解釋稱,自訂字典是一個外部文件,可以應用於任何輸入,這些字典可以是高度針對單一應用的產品代碼或是任何內容,而字典對於輸入的適用性則可能對整體壓縮效率產生巨大影響,與輸入內容高度相似的字典實際上可以達到更高的壓縮率。
在過去要想解壓縮檔案需要使用想通的字典,這使用一種名為SDCH 的流程,但存在潛在的安全弱點。Chrome 稱新的共享字典壓縮技術已經解決了這些安全性問題,無論是動態還是靜態資源都可以獲得更多好處。
後續Chrome 會在Accept-Encoding Header 中聲明支援的壓縮演算法,例如gzip、br (即Brotli)、zstd (即ZStandard) 等,當啟用共享字典後會加上額外聲明,包括br-d 或zstd- d。
開發者使用此功能:
目前測試階段如果開發者要在生產環境中使用此功能,則需要透過Chrome 的Origin Trial 註冊取得Token,然後在網站上使用這個Token 來啟用共享字典壓縮功能。
對於個人用戶,可以在Chrome 中開啟Compression Dictionary Transport 實驗性選項,如果造訪的網站已經取得Token 開啟共享字典,那就能用了。
via Chrome Developer:https://developer.chrome.com/blog/shared-dictionary-compression?hl=en