【ブロトリあっしゅく】

Brotli圧縮 とは?

最終更新:
💡 Webのデータを小さく運んで、元どおりに戻す

元の内容を変えずにデータを圧縮できる可逆圧縮方式。WebではHTML・CSS・JavaScriptなどの転送量を減らすために使われ、HTTPのContent-Encodingではbrと表される。

📌 このページのポイント
Brotli:小さく運び、元に戻す元の内容HTML・CSSなど圧縮データContent-Encodingbr元の内容同じ内容に復元圧縮復元対応するブラウザ・配信設定で利用削減率は、データと設定によって変わる
圧縮して送信し、受信側で復元する流れです。箱の大きさは削減率を表していません。gzipなどとも、同じデータで比べます。
ひよこ ひよこ
Brotliで圧縮すると、ページの内容も変わるの?
ペンギン先生 ペンギン先生
元の内容は変わらないよ。Brotliは可逆圧縮なので、受け取ったデータを元どおりに戻せるんだ。WebではHTMLやCSS、JavaScriptなどを小さくして転送し、ブラウザで復元して使うよ。
ひよこ ひよこ
どうして小さくできるの?
ペンギン先生 ペンギン先生
繰り返し現れる内容などを、短い表現で記録する仕組みを組み合わせているんだ。よく使う文字列を参照できる辞書もあるよ。ただし、どれくらい縮むかは中身と設定によって違うので、「必ず何%小さくなる」とは決められないね。
ひよこ ひよこ
ブラウザとサーバーは、どう相談するの?
ペンギン先生 ペンギン先生
ブラウザはAccept-Encodingで、扱える圧縮方式を伝えるよ。サーバーがBrotliを選んだときは、Content-Encoding: brを付けて圧縮した内容を送るんだ。対応していることと、その応答で実際に使われたことは別なので、応答ヘッダーを見ると確認できるね。
ひよこ ひよこ
gzipから必ず置き換えたほうがいい?
ペンギン先生 ペンギン先生
同じデータで転送量と処理時間を比べて決めよう。gzipも選択肢として使われるし、すでに圧縮済みの画像などは、さらに圧縮しても小さくならない場合があるんだ。サーバーが圧縮せずに返す場合もあるよ。
ひよこ ひよこ
自分のサイトで使うには?
ペンギン先生 ペンギン先生
使っているサーバーやCDNの対応と設定を確認し、配信後に応答ヘッダーや転送量を調べよう。Brotliはデータの圧縮方式なので、使うだけで通信が暗号化されるわけではないよ。通信の保護を担うHTTPSとは別の役割なんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Brotli」って出てきたら「Webのデータを小さくして運ぶためにも使う圧縮方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Brotli」 = 可逆圧縮方式の名前
💬 Googleが公開している圧縮方式だよ。データ形式はRFC 7932に記述されていて、Webのヘッダーではbrという名前で指定するんだ

参考資料

← 用語集にもどる