Firefox web browser - Faster, more secure & customizable

ブラウザはHTTPリクエストに「User-Agent:」ではじまるヘッダを含めている。このヘッダにどのOSのどのバージョンで動いている何というブラウザのどのバージョンかといった情報が文字列で記載されており、アクセス分析に使われたり、コンテンツの切り分け時の判断材料として利用されている。

Final User Agent String for Firefox 4 - Mozilla Hacksにおいて、次期メジャーブラウザとなるFirefox 4のUser Agent文字列が説明されている。IE9のUser-Agentと同じく、従来の指定よりもシンプルなものにするという方針になっている。掲載されているWindows 32ビット版のUser Agent文字列の例は次のとおり。

Firefox 4 User Agent文字列の例 - Windows 32ビット版のケース

Geckoベースで開発されたFirefox以外のブラウザでもこの形式のUser Agent表記が利用される。例えばFennecの場合、次のようになる。

Fennec 2 User Agent文字列の例 - Windows 32ビット版のケース

Firefox 3.6から変更された内容は次のとおり。

  • en-USといったロケール指定の廃止。ブラウザで設定しているロケールとユーザが希望するコンテンツのロケールは必ずしも一致していないうえに、この目的にはHTTPアクセプトヘッダでの指定を使う方が妥当という判断から、Firefox 4からは廃止される。
  • 暗号強度指定であるU;指定の廃止。すでに強度の弱い暗号とともに出荷されているブラウザは存在しないため、U;指定を残しておくことは意味がないという判断。
  • Windows;プレフィックスの廃止。ほかの指定と重複しているため。
  • NokiaやMaemoで動作する場合はMaemo; Linux armv7l;やAndroid; Linux armv7l;ように表記し、判別できるように変更。
  • ネストしていたカッコ表記の廃止。X11; Linux i686 (x86_64); rv:はX11; Linux i686 on x86_64; rv:のようになる。
  • Geckoビルド日の指定をGecko/yyyymmddの任意表記からGecko/20100101へ固定。ビルド日はGeckoのバージョンと関連性がなく誤解を招くもとになっているため、次のメジャーアップグレードでGeckoだけの表記に変更しビルド日は排除する。Gecko/20100101への日付固定はそうした排除へ向けた移行的処置。
  • Firefox以外のブラウザでFirefox/x.y.zの表記が入っているが、これはオプション。必ずしても指定する必要はない。そのアプリケーションともっとも互換性が高いFirefoxのバージョンを指定できるというもので、強制的に指定しなければならないものではない。

User Agent文字列を使って処理の切り分けを実施しているWebデベロッパやサーバ管理者はFirefox 4の新しいUser Agent文字列に留意しておく必要がある。Firefox 4 User Agent文字列の説明はGecko user agent string reference - MDCに掲載されているほか、dwitte/ua.txtにサンプルがまとまっている。Firefox 4の新しいUser Agent文字列は次のベータ版となるFirefox 4 beta 6で登場する見通し。