Chromeで共有辞書を使用した圧縮のテストが開始される、リピーターが多いウェブサイトで極めて効果的

Chromeで共有辞書を使用した圧縮のテストが開始される、リピーターが多いウェブサイトで極めて効果的 - 画像


ウェブサーバーとブラウザ間の通信においてはさまざまなデータが圧縮されています。より圧縮率の高いアルゴリズムの開発と普及が進む中、Chromeで共有辞書を使用した圧縮のテストを開始するとGoogleが発表しました。
Supercharge compression efficiency with shared dictionaries  |  Blog  |  Chrome for Developers
https://developer.chrome.com/blog/shared-dictionary-compression

Chromeで共有辞書を使用した圧縮のテストが開始される、リピーターが多いウェブサイトで極めて効果的 - 画像


ウェブサイト閲覧時にはリソースの読み込み時間を削減するため、ウェブサーバーでHTMLやCSS、JavaScriptなどの一般的なテキスト形式のファイルを送信する前に圧縮を行い、クライアントで解凍することが一般的です。
長い間圧縮にはgzipというアルゴリズムが使用されていましたが、2016年にはより優れた圧縮率を実現するBrotliというアルゴリズムがChromeに導入されたほか、2024年3月19日リリース予定のChrome 123ではZStandardという新たなアルゴリズムが導入される予定となるなど、改良が積み重ねられています。
Chromeの開発チームはこうした圧縮アルゴリズムの改良に加えて、共有辞書を使用してさらに圧縮率を高める手法を開発中とのことで、Chromeにて実際に動作を確かめるテストが行われていることを明らかにしました。
共有辞書を使用しない圧縮手法の場合、下図の2回目の「function」の部分のように「前に同じデータが出現していた場合にその部分を示すデータに置き換える」ことでデータ量を削減しています。

Chromeで共有辞書を使用した圧縮のテストが開始される、リピーターが多いウェブサイトで極めて効果的 - 画像


共有辞書を使用する場合、頻出のパーツをあらかじめ辞書として用意しておくことで、データの先頭部分から圧縮を行う事が可能です。

Chromeで共有辞書を使用した圧縮のテストが開始される、リピーターが多いウェブサイトで極めて効果的 - 画像


Brotliなどのアルゴリズムにはもともと内部に辞書が用意されているものの、ウェブサイトで使用されているフレームワークの種類などに合わせてカスタムした共有辞書を使用することでより圧縮率が高まります。下図の通り、Gzipと比較して最大で96%の圧縮率を達成することもあるとのこと。

Chromeで共有辞書を使用した圧縮のテストが開始される、リピーターが多いウェブサイトで極めて効果的 - 画像


Googleの検索結果ページではHTMLのサイズが平均43%まで低下したほか、Amazonでは平均30%になるなどさまざまなサイトで大きくデータ量を削減できるとされています。

Chromeで共有辞書を使用した圧縮のテストが開始される、リピーターが多いウェブサイトで極めて効果的 - 画像


Chromeはリクエストにおける「Accept-Encoding」ヘッダで「br-d」「zstd-d」と表示することで共有辞書のサポートを表すとのこと。どの共有辞書が利用できるのかについては「Available-Dictionary」ヘッダにハッシュを記載してサーバーへ通知します。

Chromeで共有辞書を使用した圧縮のテストが開始される、リピーターが多いウェブサイトで極めて効果的 - 画像


ウェブサイト側は辞書を直接用意するほか、「Use-As-Dictionary」ヘッダにて辞書として利用する静的リソースを指定することが可能です。例えば下図のように設定することで、「styles.v1.css」から「styles.v2.css」に更新した際にほぼ差分のみのデータを送信するだけでOKになるとのこと。

Chromeで共有辞書を使用した圧縮のテストが開始される、リピーターが多いウェブサイトで極めて効果的 - 画像


こうした仕組みの性質上、再訪問者の割合や更新頻度が高いサイトにおいて読み込みのパフォーマンス改善に効果的となっています。Chrome側で共有辞書の使用を有効にするには「chrome://flags/#enable-compression-dictionary-transport」にアクセスし、「Compression dictionary transport」フラグを「Enabled」にすればOK。

Chromeで共有辞書を使用した圧縮のテストが開始される、リピーターが多いウェブサイトで極めて効果的 - 画像


ウェブサイト側で共有辞書を試す場合にはオリジントライアルに登録するよう案内されています。

ジャンルで探す