2020/01/21

現行のユーザエージェントHTTPヘッダが凍結され廃止されるという件について

ついこの前、 Chrome が HTTP User Agent を凍結、廃止するという草案 が出て界隈はすこし騒がしくなった。まじか、Chromeがやるなら大ごとだな、と思って中身を見てみたが、Client Hints を使ったコンテントネゴシエーションに移行して現行のユーザエージェントHTTPヘッダは凍結ののちに廃止するという案だった。凍結から廃止までのスケジュール案まで出ていたので界隈はびっくりするよね。

ちなみにどんな案かというと、

  • UA文字列がユーザ追跡に使われているから詳細なバージョンは隠そうぜ
  • デフォルトで渡すのは簡単なエージェント名くらいにして、Accept-CH 使って必要なやつ確認しつつ受け渡そうぜ
  • 現行のユーザエージェントヘッダ凍結のスケジュールは2020/06上旬な!(え、あと半年ないの?)

UAの情報を大雑把にしても、fingerprintに使われることは変わらないだろうなあというのと(少しはセキュアになるのだろうけども)、コンテントネゴシエーションは面倒くさいので(面倒くさいからどうこうという話でもないのだけれど)、クライアント・サーバ双方実装も必要になるし、しかも、本当にユーザエージェントの判定が必要なサーバはコンテントネゴシエーション非対応クライアントを拒否するでしょうから、おそらくクライアント側がまともに実装せずにネゴシエーションすることもなく全情報を最初から全リクエストで送信してくる世界が目に見える、という感じがする。(まともなAPIにおいては仕様の通りになるのでしょうが、HTTPリクエストにおいては現実問題を回避することの方が優先されそう)

とはいえ、Chrome, Edge, Firefoxが足並みそろえているようなのでうまく進むのかもしれない。UAによってレスポンスを変化させているが、開発者がいなくなっていてどうしようもないサーバがいまどのくらいあるか、というのが正否を握っている気がする。もはやそんなサーバ無視して世界を良くしていく方向で!ということになりそうだけどどうなんでしょう。

UAの歴史的に言うと、あるブラウザで閲覧できないということを避けるためにユーザエージェント文字列が無駄に継承されてカオスになったという失敗はさすがに繰返さないだろうから、たぶん文字コードをUTF-8に統一するときのように、文字化けした場合はこちら的なフォールバック機能を各ブラウザが提供して、HTTP User Agent ヘッダを送信するのではないかと予想している。

正直、いまのヘッダのままで、構造化して取得できればそれでいいんだけどな、、

まあ、とりいそぎユーザエージェントを見て何かしている人たちは一応進捗をウォッチしておいた方が良さそう。(ずっとウォッチしているひとにとってはもうこれ何度目だよって感じかもしれないけど)

サイト内検索