Google 認為網際網路使用者的時間是寶貴的,他們的時間不應該消耗在漫長的網頁載入中,因此在 2015 年 9 月 Google 推出了無失真壓縮演算法 Brotli。Brotli 通過變種的 LZ77 演算法、Huffman 編碼以及二階文字建模等方式進行資料壓縮,與其他壓縮演算法相比,它有著更高的壓塑壓縮效率。
根據 Google 釋出的研究報告,Brotli 壓縮演算法具有多個特點,最典型的是以下 3 個:
- 針對常見的 Web 資源內容,Brotli 的效能相比 Gzip 提高了 17-25%;
- 當 Brotli 壓縮級別為 1 時,壓縮率比 Gzip 壓縮等級為 9(最高)時還要高;
- 在處理不同 HTML 文件時,Brotli 依然能夠提供非常高的壓縮率。
Brotli 憑藉它優異的壓縮效能迅速佔領了市場,從下圖可以看到,除了 IE 和 Opera Mini 之外,幾乎所有的主流瀏覽器都已支援 Brotli 演算法。
△ Brotli 演算法支援情況
之前又拍雲已經支援了 Gzip 演算法,在優化網站速度方面,又拍雲始終不遺餘力地進行優化。目前又拍雲 CDN 已支援 Brotli 壓縮演算法,通過對新壓縮演算法的支援將壓縮率提升 20% ,並且幫助降低移動裝置的電池使用量,並達到省電、延長電池使用壽命的目的。
如何使用 Brotli 壓縮演算法
和 Gzip 壓縮演算法一樣,Brotli 壓縮演算法也是免費開放給又拍雲 CDN 平臺上的所有使用者,同時該特性已預設開啟。
使用又拍雲 CDN Brotli 壓縮演算法需要同時滿足三個條件:
- Content-Type 滿足如下 MIME 列表:
text/plain text/javascript text/css text/xml text/x-component application/javascript application/x-javascript application/xml application/json application/xhtml+xml application/rss+xml application/atom+xml application/x-font-ttf application/vnd.ms-fontobject image/svg+xml image/x-icon font/opentype text/html -- default
- Content-Length 大於 256 位元組
- 客戶端請求頭需攜帶 Accept-Encoding: br
此外由於並非所有的瀏覽器都支援 Brotli 演算法,所以在 CDN 邊緣節點,又拍雲會同時提供通過 Brotli 演算法壓縮的檔案和原始資原始檔。
當客戶端不支援 Brotli 演算法時,又拍雲會選擇提供 Gzip 演算法來壓縮原始檔案並提供給客戶端。當客戶端同時支援兩種演算法時,又拍雲 CDN 會優先響應 br 版本檔案。
使用又拍雲 CDN 服務,即可免費享受到 Brotli 演算法帶來的極致壓縮體驗,歡迎使用。
推薦閱讀:
參考文獻:
Google 釋出的研究報告:http://www.gstatic.com/b/brotlidocs/brotli-2015-09-22.pdf
Brotli 演算法支援情況:http://caniuse.com/#feat=brotli