「2000年問題」の再来?–ブラウザーの「バージョン100問題」がやって来る

CNET Japan

 人気のウェブブラウザー「Google Chrome」と「Firefox」が近いうちにバージョン100を迎える。きりの良い、クールなバージョンではあるが、これらの記念すべきリリースには技術的な問題がある。こうした問題の中にはウェブサイトが機能しなくなる可能性のあるものもある。

 そう、機能しなくなるかもしれないのだ。理由を説明しよう。

 すべてのウェブブラウザーは「ユーザーエージェント」(UA)を使う。これは、サーバーにHTTPヘッダーを送り、ブラウザーを認識させるための文字列だ。JavaScriptもデバイスの判別に「navigator.userAgent」というコードを使う。ウェブ開発者はサーバーサイドのプログラムでUAを使う。UAの書式は以下のようになる。

 browserName/majorVersion.minorVersion(ブラウザー名/ブラウザーのメジャーバージョン.マイナーバージョン)

 本稿執筆現在のブラウザーの最新バージョンでのUAの例は以下の通り。

  • Chromeの場合:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36
  • Firefoxの場合:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0

 では、何が問題になるのだろうか。昔からあるもの、つまり、日付形式の設定ミスだ。最も有名な例は、いまだに完全には克服されていない「2000年問題」だ。それは、1990年代後半以前に書かれたプログラムが4桁の年の日付を処理できないというものだった。今回ブラウザーで問題になるのは、かなり多くのウェブサイトのプログラムが3桁のUAを処理する前提になっていないことだ。そう、非常にシンプルな話だ。

 だが、シンプルだからといって些末な問題というわけではない。UAが1桁(1~9)から2桁に移行したときに既に、この問題を予見できた。例えば、2009年に「Opera」ブラウザーがバージョン10になった際、ウェブサイトを正しくレンダリングできないことがあった。また、Firefoxがバージョン10になった際には、Firefox 10をFirefox 1.0と解釈してしまうスクリプトのせいで、完全にレンダリングできなくなったウェブサイトがあった。ChromeとFirefoxがバージョン100になれば、同様の、あるいはそれ以上の問題の発生が予測できる。

 GoogleもMozillaも、来るブラウザーのUA問題をしっかり認識しており、この頭痛の種の発見と修正に取り組んでいる。

 両社の努力にもかかわらず、いくつか問題が発生するだろう。例えば、UAを使って、特定のブラウザーに提供するウェブページやサービスを決定するのは悪い方法であることは何十年も前から知られているが、かなり多くのウェブ開発者がいまだにこの悪用を続けている。この方法を使っているウェブサイトは、バージョン100のウェブブラウザーではページではなくエラーメッセージが表示されることになる可能性は高い。

Source

タイトルとURLをコピーしました