Brotli (2013)(ブロトリ)
Google の Jyrki Alakuijala・Zoltan Szabadka が 2013 年に公開した可逆圧縮アルゴリズム。LZ77 + Huffman + 第二段静的辞書 (Web 用語・HTML タグ等) の組合せで、Web コンテンツに特化した高圧縮率を実現、HTTP Content-Encoding: br として現代 Web の標準圧縮となった。
概要
Brotli は、Google の Jyrki Alakuijala・Zoltan Szabadka が 2013 年に公開した可逆圧縮アルゴリズムで、LZ77 + Huffman 符号化 + 第二段静的辞書 (Web 用語・HTML タグ・CSS/JS 頻出語等の 120KB 事前定義辞書) の革新的な組合せで、Web コンテンツに特化した高圧縮率を実現した重要技術です。Google Fonts 配信の WOFF2 (Web Open Font Format 2.0、2014) で初実装され、その後 HTTP の汎用 Content-Encoding として 2015 年 7 月に RFC 7932 として標準化、2016 年から Chrome・Firefox・Safari・Edge の全主要ブラウザで Content-Encoding: br として標準サポート開始し、HTTPS 接続のみで Web 圧縮の事実上標準となりました。120KB の事前定義辞書には英語・HTML/CSS/JavaScript の頻出語・タグ・記号などが含まれており、これにより gzip (Deflate) 比 +15-25% の高圧縮率を Web コンテンツで実現します。
主な特徴・仕組み
- 発表: 2013 年 Google、Jyrki Alakuijala・Zoltan Szabadka
- 標準化: 2015 年 RFC 7932 (IETF)
- 構成: LZ77 + Huffman + 第二段静的辞書 (120KB)
- 静的辞書: Web 頻出語・HTML タグ・CSS/JS シンタックス等を事前定義
- 辞書サイズ: LZ77 スライディング 16MB + 静的辞書 120KB
- 圧縮レベル: 0-11 (デフォルト 11)、最高レベル
- 圧縮率: gzip 比 +15-25% (Web コンテンツ)・テキスト一般 +5-15%
- 圧縮速度: gzip より遅い、レベル 11 で 0.5-2MB/s
- 解凍速度: gzip と同等、200-400MB/s
- HTTP 対応: Content-Encoding: br、HTTPS のみ (HTTP では不採用)
スペック比較表
| ツール | レベル | 圧縮率 (HTML) | 圧縮速度 | 解凍速度 |
|---|---|---|---|---|
| gzip | 6 | 75% | 30MB/s | 200MB/s |
| Zstandard | 3 | 70% | 480MB/s | 1300MB/s |
| Zstandard | 19 | 80% | 5MB/s | 1100MB/s |
| Brotli | 4 | 78% | 25MB/s | 300MB/s |
| Brotli | 11 | 82% | 1MB/s | 400MB/s |
具体例・対応技術
- WOFF2 (Web Open Font Format 2.0, 2014): Brotli ベース、Google Fonts 配信標準
- HTTP Content-Encoding: br (2016-): Chrome 49+/Firefox 44+/Safari 11+/Edge 15+
- Nginx brotli モジュール (2019-): 動的圧縮、
brotli on; brotli_comp_level 4; - Cloudflare CDN (2017-): 自動 Brotli 圧縮、Pro プラン以上
- Fastly CDN: Brotli 動的圧縮対応
自作PCでの選び方・注意点
Brotli は 2026 年現在の Web 配信標準圧縮で、Web サイト運営する自作 PC ユーザーにとって必須知識。Nginx に brotli モジュールを追加するには apt install nginx-module-brotli (Ubuntu) または手動コンパイル、load_module modules/ngx_http_brotli_filter_module.so; で有効化。設定例: brotli on; brotli_static on; brotli_comp_level 4; brotli_types text/html text/css application/javascript; でレベル 4 で動的圧縮、brotli_static on で事前圧縮ファイル (.br) 配信。Cloudflare CDN は 2024 年から無料プラン含めて Brotli 自動圧縮対応、設定不要で帯域削減効果 15-25%。Brotli 圧縮ファイル生成は brotli -11 file.html で file.html.br を生成、CDN/Web サーバで .br ファイルを Content-Encoding: br として配信すると最高圧縮率を得られます。
関連用語との違い
- gzip (Deflate): 古い Web 標準、Brotli より低圧縮率
- Zstandard: 汎用圧縮、Web 用途で Brotli より広い対応
- WOFF2: Web フォント、Brotli の特殊用途実装
よくある質問(FAQ)
Q1: Brotli と gzip どちらを選ぶ? A: HTTPS Web 配信なら Brotli (圧縮率優位)、HTTP・互換性最優先なら gzip。実用上は両者並存設定 (br + gzip フォールバック) が一般的。
Q2: なぜ HTTPS のみ? A: HTTP 中継プロキシで圧縮データを認識できないとエラー発生のため。HTTPS では暗号化で中継問題が回避されるため Brotli 採用可能。
Q3: 動的圧縮 vs 事前圧縮?
A: 動的は CPU 負荷・遅延あり、事前圧縮 (.br ファイル生成) で配信時の負荷ゼロ。大型静的サイトは事前圧縮推奨。
まとめ
- Brotli = 2013 年 Google 開発、Web 特化圧縮
- LZ77 + Huffman + 120KB 静的辞書 (Web 頻出語)
- HTTP Content-Encoding: br で 2016 年から Web 標準
- gzip 比 +15-25%、HTTPS 必須、Cloudflare/Fastly で標準対応