今日の日報

今日の日報です

GooglebotはBrotliを実装しているのか

少し前に話題ですが、次期chromeが高圧縮アルゴリズム「Brotli」を実装というニュースがありました。

www.suzukikenichi.com

素朴な疑問として、googlebotは、現時点でBrotliを実装しているのでしょうか。と、その前に、圧縮についての簡単なおさらい。

圧縮はどういう手順を踏むのか

サーバーから圧縮されたデータがブラウザ(クライアント)に渡されるわけですが、その手順は下の図のようなイメージです。 f:id:nippo_t:20160304153315p:plain

リクエスト時に、クライアントからサーバーに対して、実装されているアルゴリズムが伝えられます。
その中で、サーバー側で利用可能なアルゴリズムを選択し、圧縮を行います。

GooglebotはBrotliを実装しているか?

Googlebotも、サーバーから見れば、1つのクライアントです。Googlebotがもし、圧縮アルゴリズムを実装しているのであれば、リクエスト時にアルゴリズムを伝えているはずです。

googlebotのリクエストを見られれば良いのですが、あいにく手元にデータがありません。 そういうときには、確認くんのキャッシュを利用します。

f:id:nippo_t:20160304153412p:plain

エンコードの仕様:gzip,deflate,br。

Accept-encoding: br on HTTPS connection - Chrome Platform Status

Brotli (shortname "br")

なんと、googlebotはすでに、Brotliを実装済み。(数日前はなかった気がするのですが。。。) ともあれ、現時点で、Brotliを実装しておけば、googlebotはそれを理解するということですね。 あー意外。

参考

HTTPでエンコーディングしていないコンテンツを要求siguniang.wordpress.com

accept-encodingで何も指定していなければ、UAなどで類推するよう。

圧縮を有効にする  |  PageSpeed Insights  |  Google Developers

pagespeed insightでは、「gzip形式」が指定されています。