Knoh, The Knowledge Hub

なぜ Mozilla 以外のブラウザでも "Mozilla" がユーザーエージェントに含まれているの?

 

これは、とても歴史的な話で、僕たちの知っている現在の "Mozilla" よりも時はさかのぼる (とはいえ、現在の Mozilla もその精神を受け継ぐ末裔だ)。

質問をブレイクダウンしよう:

最初に: この文脈でいう "mozilla" はなにを指すのか? ヒント: それは Mozilla Corporation や Mozilla Foundation のことではなく、Gecko エンジンのことでもない。

90 年代初頭、Mosaic というブラウザがイリノイ大学・米国立スーパーコンピュータ応用研究所 (NCSA) のとあるグループによって開発される。Mosaic の使いやすさや特徴的な機能は当時の "world wide web" の一般化に役立った。Mosaic の共同開発者の一人は Netscape という会社を設立し、この会社は Netscape という商用ウェブブラウザを生みだす。このブラウザがリリースされる以前 (そして名付けられる) までは、内部的に "Mozilla" という製品コードネームが使われていた (このコードネームは "Mosaic Killer" を短縮したものらしい。なぜなら、この新しい会社の目的は自分たちの新しいブラウザで、未だに NCSA によって開発されていた無料の Mosaic に取って代わることだったからだ)。

Netscape がリリースされたとき、Netscape は "Mozilla/1.0" のユーザーエージェントを受け継いだ。これは製品コードネームへの敬意のあらわれだ。そして、それ以降の全てのバージョンの Netscape 製品はそのユーザーエージェントを使い続けた。

編集: Mozilla がユーザーエージェントになるまでの実際の経験談に興味がある人は、Lou Montulli の回答を参照してください。Lou Montulli's answer to User Agents: Why do non-Mozilla browsers include "Mozilla" in their user agent strings?

2点目: なぜ Netscape 以外のブラウザも採用したのか?

Netscape はたちまち市場を支配するほど人気になり、改良されていくにつれ、たくさんの機能が追加され、あらゆるウェブサイトはそれを活用した。ウェブサイトは "Mozilla" という文字列がユーザーエージェントに含まれているかをチェックすることによって、Netscape の機能を使えるかを検出していた。

その他のブラウザが Netscape と競うべく、市場に参入したとき (もっとも有名な例は Internet Explorer だろう)、競合ブラウザたちは Netscape の機能を複製していった。だが、競合者たちは、"Mozilla" という文字列がユーザーエージェントに含まれていないと、ウェブサイトは面白みに欠けるバージョンを配信してしまい、自分たちのブラウザがつまらないものに見えてしまうことに気づいた。

したがって、競合ブラウザたち、特に IE は "Mozilla" という文字列をユーザーエージェントの先頭に含め、「僕は Mozilla と互換しているけど、実際は IE だよ」と暗示する挿入句を追記した。そうすることによって、ウェブサイトは "Netscape" 版のページを IE にも配信するようになった。他のブラウザたち (WebKit ベースのものなど) もこの流れに参加した。

3点目: なぜ今でもブラウザたちは Mozilla を引きずっているの?

この風習を変えるには基本的にもう手遅れだ。"Mozilla" という文字列をユーザーエージェントから取っ払ってしまうと、そのユーザーエージェントのパース結果を元に何かしらの解釈を行うコードを壊してしまうかもしれない。Gecko ベースのブラウザですら、基本的に "Mozilla/5.0" にロックオンし、ブラウザ自体のバージョンは別の文字列を使っている (例: バージョン 0.1 から 4.0 Beta 12 までのすべての Firefox は "Mozilla/5.0" という文字列からはじまり、その直後に Firefox バージョンの文字列が続く)。デフォルトモードで自身を正しく識別しようとするメジャーな Opera ですら、"Mozilla" という文字列を含むユーザーエージェントに切り替える機能を備えている (これは Opera で正しく動作しないサイトを見つけたときのためだ)。

正直なところ、この "Mozilla" という文字列は現在では無意味すぎて、もし各ブラウザがユーザーエージェントから取っ払っても問題はないだろう。とはいえ、実際のところ、ユーザのインターネット体験を劣化させてしまうリスクをとる価値が "道理" にあるとは、どのブラウザメーカーも本気で思っていないだろう (Opera を除く) 。後悔するより安全でいる方が良いってことだ。