ネットサービスとかGoogleとか豆知識とか。

Index > Google > User-Agentによってはgzipが有効にならないことがある?
Google
2008年04月12日 20:22

User-Agentによってはgzipが有効にならないことがある?

  • このエントリーをはてなブックマークに追加
  • ... PV
スポンサード リンク

Googleを支える技術」の244ページに次のような記述があった。

たとえば以前のクローラーでは、Webアクセスのときの「User-Agent」が次のようになっていました。
Googlebot/2.1 (+http://www.google.com/bot.html)
Bigdaddy以降は、これが次のように変わっています。
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
この変更により、Webページのgzip圧縮が有効になるケースが多くなり、結果的にネットワークへの負担をさらに減らせるということです。

つまりヘッダに Accept-Encoding: deflate, gzip をつけていてもgzipを有効にしてくれないサーバがあるということ。

色々とネットを探ってみると、GoogleのMatt Cutts氏のブログの「Crawl caching proxy」という記事の中で言及されていた。

For example, the pre-Bigdaddy webcrawl Googlebot with user-agent “Googlebot/2.1 (+http://www.google.com/bot.html)” would sometimes allow gzipped encoding. The newer Bigdaddy Googlebots with user-agent “Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)” are much more likely to support gzip encoding.

GoogleがクローラーをBigdaddyという集中管理システムに移行したのが2005年末から2006年にかけてらしいので、そんなに古い話でもない。今でもそのようなサーバはちらほらあるということだろう。

たとえば Apacheのmod_deflateのドキュメントにはgzipを扱えないNetScape 4.x系のブラウザに対してgzipを無効にする設定が書かれていたりする。

BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

こんな感じでヘッダのUser-Agentからgzipの有効/無効を判定することはあるようだ。サーバによって設定が様々だから、以前のGoogleのUser-Agentだとgzipを無効にされるケースがあったということになる。

ブラウザとgzipの関係については Which browsers can handle 'Content-Encoding:'? あたりが詳しい。

つまりはクローラーのユーザーエージェントは Mozilla/5.0 (compatible; で始まる文字列にしておいたほうがよさそう、ということになる。

だから検索エンジンのクローラーはほとんどこの書式なのね。勉強になった。

4774134325
Googleを支える技術 ~巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)