Brotliストリーム (.br)
IETF 標準BrotliはGoogleによって開発されたオープンソースの可逆データ圧縮アルゴリズムであり、インターネットページの配信を高速化するために、特にWebタイポグラフィ(WOFF2)およびHTTPコンテンツエンコーディング(Content-Encoding: br)向けに最適化されています。
BROTLI を GZIP に変換
無料のブラウザ内 BROTLI から GZIP へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してBrotliファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してBrotliファイルを識別します:
16進数シグネチャ(オフセット0):
CE B2 CF 81ASCII表現: βÏ\x81
標準化: IETF RFC 7932
技術仕様
| コンテナアーキテクチャ | ウィンドウサイズ宣言とメタブロックを任意で含む生ビットストリームのフレーミング |
| 圧縮 | 最大16 MBのLZ77スライディング辞書、二次コンテキストモデリング、固定120 KB辞書 |
| バイトエンディアン | リトルエンディアンのビットパッキング |
| 色空間 | 該当なし(データ圧縮ストリーム) |
| チャンネルと構造 | 汎用バイトストリーム圧縮 |
| 最大寸法 | 任意の長さのバイトストリーム(長さの上限がないストリーミングに対応) |
| 透過性 | データを可逆圧縮し、展開後にバイト単位で完全に復元 |
| ストリーミングとプログレッシブ | メタブロック分割により、HTTPチャンク転送で連続ストリーミング可能 |
技術比較表:Brotliと競合製品
| 技術属性 | Brotli (現在) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| 組み込み静的辞書 | 120 KBのWeb辞書が含まれています | なし(動的のみ) | ユーザー訓練可能な辞書 | なし(動的のみ) |
| Web圧縮(Gzipと比較) | Gzipよりも15%~25%小さい | ベースライン標準(Gzip) | Gzipよりも10%~20%小さい | ベースラインDeflate |
| HTTPコンテンツエンコーディング | 「Content-Encoding: br」 | 「Content-Encoding: gzip」 | 「Content-Encoding: zstd」 | 「Content-Encoding: deflate」 |
| 主な設計目標 | WebテキストとWebフォントの転送 | 一般的なUnixファイル圧縮 | リアルタイムデータベースとデータ取り込み | 基礎的な圧縮アルゴリズム |
一般的な破損モードと16進数リカバリガイド
ブラウザが「ERR_CONTENT_DECODING_FAILED」でリソースの読み込みに失敗する。
根本原因: プロキシまたはサーバーが、最後のメタブロックが送信される前にBrotliストリームを途中で切断しました。
復旧: ブラウザキャッシュをクリアし、サーバーの圧縮設定を確認するか、File2File.app経由でローカルに解凍します。
セキュリティ分析とパーサー攻撃ベクトル
Brotliの静的辞書とコンテキストモデリングでは、不正なバックレファレンスに対する厳格なメモリ境界チェックが必要です。
既知の攻撃ベクター
- テーブルサイズを超える静的辞書オフセットを参照する際の範囲外ポインタ読み取り。
- 小さなペイロードからクライアントメモリを枯渇させる解凍爆弾(zip爆弾の同等物)。
- スライディングウィンドウリングバッファのサイズ変更中のバッファオーバーフロー。
防御的ベストプラクティス: 信頼されていないBrotliストリームの解凍中に、最大出力バッファサイズを適用します。
歴史的背景とマイルストーン
主なメリット
- HTML、CSS、およびJavaScriptのWebアセットにおいて、Gzipよりも15%~25%優れた圧縮率。
- 一般的なWeb単語、HTMLタグ、およびフレーズの事前定義された120 KBの静的辞書を組み込んでいます。
- 極めて高速な解凍速度により、クライアント側でのほぼ瞬時のページレンダリングを保証します。
技術的な制限とデメリット
- レベル11での圧縮は計算コストが高くなります(静的アセットの事前圧縮に最適です)。
- 透過プロキシの破損を防ぐため、すべてのWebブラウザでHTTPSが必要です。
- 生の.brファイルには、外部コンテナ化なしでは埋め込みファイル名やパーミッションヘッダーがありません。
興味深い技術トリビア
- Brotliという名前は、スイスドイツ語で「小さなパン」を意味する「Brötli」にちなんで名付けられました。
- Brotli内の静的120 KB辞書には、何千もの一般的な英語、スペイン語、ドイツ語、中国語、およびHTMLのスニペットが含まれています。
- Brotliは主要なウェブサーバーやブラウザーでサポートされていますが、トラフィックに占める割合はサービスやレスポンスの種類によって異なります。
よくある技術的な質問
ウェブサイトにおいてBrotliがGzipよりも高速なのはなぜですか?
BrotliはHTML、CSS、JSファイルをGzipよりも20%小さく圧縮しつつ、同等の速度で解凍できるため、セルラーネットワーク経由で必要なラウンドトリップ数を減らすことができます。
BrotliがHTTPSを必須とするのはなぜですか?
インターネット上のレガシーな透過プロキシが新しい「br」エンコーディングを誤って解釈または破損させる可能性があるため、WebブラウザはセキュアなHTTPS接続上でのみBrotliをサポートしています。
.brファイルを解凍するにはどうすればよいですか?
File2File.appを使用すれば、ウェブブラウザ上で直接、.brや.brotliファイルをプレーンテキストや元のファイルに即座に解凍できます。