Brotli 資料流 (.br)
IETF 標準Brotli 是 Google 開發的開源無損資料壓縮演算法,專為網頁排版(WOFF2)與 HTTP 內容編碼(Content-Encoding: br)進行最佳化,以加快網頁傳輸速度。
將 BROTLI 轉換為 GZIP
免費的瀏覽器端 BROTLI 轉 GZIP 轉換器。在您的裝置上即時轉換檔案。
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 Brotli 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 Brotli 檔案:
十六進位簽章(偏移量 0):
CE B2 CF 81ASCII 表示法: βÏ\x81
標準化: IETF RFC 7932
技術規格
| 容器架構 | 具有選擇性視窗大小宣告與中繼區塊的原始位元串流分框 |
| 壓縮 | LZ77 滑動字典(最高 16 MB)、二階內容建模,以及 120 KB 靜態字典 |
| 位元組序 | 小端序位元封包 |
| 色彩空間 | 不適用(資料壓縮串流) |
| 色版與結構 | 通用位元組串流壓縮 |
| 最大尺寸 | 任意位元組串流長度(支援無限串流) |
| 透明度 | 無損且位元組完全一致的來回資料保留 |
| 串流與漸進式 | 後設區塊(meta-block)分塊允許持續的 HTTP 分塊傳輸串流 |
技術比較矩陣:Brotli 對比競爭格式
| 技術屬性 | Brotli (目前) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| 內建靜態字典 | 包含 120 KB 網路字典 | 無(僅動態) | 使用者可訓練的字典 | 無(僅動態) |
| 網路壓縮(相較於 Gzip) | 比 Gzip 小 15% - 25% | 基準標準(Gzip) | 比 Gzip 小 10% - 20% | 基準 Deflate |
| HTTP 內容編碼 | 「Content-Encoding: br」 | 「Content-Encoding: gzip」 | 「Content-Encoding: zstd」 | 「Content-Encoding: deflate」 |
| 主要設計目標 | 網頁文字與網頁字型傳輸 | 一般 Unix 檔案壓縮 | 即時資料庫與資料汲取 | 基礎壓縮演算法 |
常見損壞模式與十六進位修復指南
瀏覽器載入資源失敗,並顯示「ERR_CONTENT_DECODING_FAILED」。
根本原因: 代理伺服器或伺服器在傳輸最後一個後設區塊之前,截斷了 Brotli 串流。
修復: 清除瀏覽器快取、檢查伺服器壓縮設定,或透過 File2File.app 在本機解壓縮。
安全性分析與解析器攻擊向量
Brotli 的靜態字典與內容建模需要針對格式錯誤的往回參照進行嚴格的記憶體界線檢查。
已知攻擊向量
- 當參照超出表格大小的靜態字典位移時,會發生超出範圍的指標讀取。
- 解壓縮炸彈(相當於 zip 炸彈),透過極小的負載耗盡使用者端記憶體。
- 滑動視窗環形緩衝區調整大小期間發生緩衝區溢位。
防禦最佳實務: 在解壓縮不受信任的 Brotli 串流時,強制執行最大的輸出緩衝區大小。
歷史起源與里程碑
2016IETF 將 Brotli 發布為 RFC 7932,確立其成為廣泛使用的 HTTP 內容編碼。
2015Google 將 Brotli 重新定位為 Gzip 的通用 HTTP 網路壓縮替代方案。
2013Google 工程師 Jyrki Alakuijala 與 Zoltán Szabadka 引入 Brotli,用於 WOFF2 網頁字型壓縮。
主要優勢與優點
- 在 HTML、CSS 與 JavaScript 網路資產上的壓縮率比 Gzip 高出 15% 到 25%。
- 內建預先定義的 120 KB 靜態字典,包含常見的網路字詞、HTML 標籤與片語。
- 極快的解壓縮速度,確保能在瀏覽器端幾乎瞬間完成頁面算繪。
技術限制與缺點
- 等級 11 的壓縮需要消耗大量運算資源(最適合用於靜態資產預壓縮)。
- 在所有網頁瀏覽器中均需強制使用 HTTPS,以防範透明代理伺服器損壞資料。
- 原始的 .br 檔案若沒有外部容器化,會缺少內嵌的檔名或權限標頭。
有趣的技術冷知識
- Brotli 的名稱取自瑞士德語的「Brötli」,意思是「小麵包」。
- Brotli 內部的 120 KB 靜態字典包含數千個常見的英文、西班牙文、德文、中文與 HTML 片段。
- Brotli 受到各大網頁伺服器與瀏覽器的支援,但其流量佔比會因服務與回應類型而異。
常見技術問題
為什麼 Brotli 用於網站時比 Gzip 更快?
在某些情況下,Brotli 可以產生比 Gzip 更小的網頁文字檔案,但實際差異取決於內容、壓縮設定與實作方式。
為什麼 Brotli 需要 HTTPS?
網頁瀏覽器僅支援透過安全的 HTTPS 連線使用 Brotli,因為網際網路上的舊版透明代理伺服器會誤解或損毀新的「br」編碼。
如何解壓縮 .br 檔案?
您可以直接在網頁瀏覽器中使用 File2File.app,立即將 .br 或 .brotli 檔案解壓縮為純文字或原始檔案。