GoogleChromeが「ユーザーエージェント非推奨」にした理由。複雑怪奇な Webブラウザのユーザーエージェントの世界

WebサイトとWebブラウザの攻防。ほぼ全てのWebブラウザが行う「成りすまし」

 しかし実際のユーザーエージェントは、歴史的な経緯でぐだぐだになっていた。特に問題となっていたのはWebブラウザだ。  各種Webブラウザは、歴史的にシェア争いを続けてきた。「Netscape Navigator」「Internet Explorer」「Google Chrome」と覇権は次々と変わっていった。それ以外にも無数のWebブラウザが誕生し、シェアの争奪戦を繰り広げた。その過程で、後発のWebブラウザは、クリアしなければならない問題があった。  サーバー側では、ユーザーエージェントを見て、送り返すデータを変えることがある。新しいWebブラウザが登場した際、自身の名前をそのままユーザーエージェントとしてサーバーに送っても、「そんなWebブラウザは知らない」と言われて、先行のWebブラウザと同じデータがもらえない。  ではどうするか。後発のWebブラウザは、ユーザーエージェントで、先行のメジャーなWebブラウザの名前を名乗り、そこに自分の名前を加えていった。そうしたことが繰り返されることで、ユーザーエージェントはどんどん長大な文字列になっていった。  例を示そう。まずは「Google Chrome」だ。 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36  「Mozilla」を名乗り、「AppleWebKit」を名乗り、「Safari」も名乗っている。もちろん「Google Chrome」は、「Mozilla」でも「AppleWebKit」でも「Safari」でもない。  ちなみに、KHTML は、KDEプロジェクトにより開発されているHTMLレンダリングエンジンで、Konquerorのために開発されたものだ。Gecko は、元々 Netscape 系で、のちに Firefox 系で使われたHTMLレンダリングエンジンになる。  これらはどれも「Google Chrome」とは何の関係もない。本来ならば「Chrome/79.0.3945.130」だけでよいはずである。  次に新版の「Microsoft Edge」も見てみよう。 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36 Edg/79.0.309.71  「Mozilla」を名乗り、「AppleWebKit」を名乗り、「Chrome」を名乗り、「Safari」も名乗っている。新版の「Microsoft Edge」は、「Google Chrome」と同じレンダリングエンジンを使っているから「Chrome」の名乗りは、100%の嘘ではないだろう。しかし、本来なら「Edg/79.0.309.71」だけでよいはずだ。  ちなみに、この「Edg」という文字列も、旧「Edge」と区別するために付けたもので、正しい名称ではない。旧「Edge」の評判が悪かったために、自身の名前を偽っているのだ。  Webブラウザのユーザーエージェントは、このように欺瞞溢れる魔窟となっていた。そして、負の遺産としか言いようがない状態になっていた。

ユーザーエージェントの存在意義

 Webブラウザのユーザーエージェントは、その存在意義が問われるような内容になっていた。  ただし、「データを要求する相手を区別する」という本来の用途も当然ある。そのために、「UA-CH(User-Agent Client Hints)」という代替の仕様に移行するようだ。必要ではあるが、現状はまずいということだろう。  この移行の試みが成功するのかは分からない。「Google Chrome」のシェアが大きいとはいえ、急には現状は変わらないだろう。Webブラウザ以外のクライアントも存在する。そのため当分のあいだサーバー側の開発者は、欺瞞に満ちた長大なユーザーエージェントに付き合い続ける必要があるだろう。 <文/柳井政和>
やない まさかず。クロノス・クラウン合同会社の代表社員。ゲームやアプリの開発、プログラミング系技術書や記事、マンガの執筆をおこなう。2001年オンラインソフト大賞に入賞した『めもりーくりーなー』は、累計500万ダウンロード以上。2016年、第23回松本清張賞応募作『バックドア』が最終候補となり、改題した『裏切りのプログラム ハッカー探偵 鹿敷堂桂馬』にて文藝春秋から小説家デビュー。近著は新潮社『レトロゲームファクトリー』。2019年12月に Nintendo Switch で、個人で開発した『Little Bit War(リトルビットウォー)』を出した。2021年2月には、SBクリエイティブから『JavaScript[完全]入門』、4月にはエムディエヌコーポレーションから『プロフェッショナルWebプログラミング JavaScript』が出版された。
1
2