User-Agent 解析

ブラウザ、bot、端末、レンダリングエンジンを誤判定する前に、リクエストに付いてくるUser-Agent文字列を確認します。

User-Agent文字列

User-Agentの参考情報

User-Agent文字列の構造

多くのUser-Agent文字列は互換性トークン、プラットフォーム詳細、レンダリングエンジン、ブラウザ名とバージョンを組み合わせています。歴史的な形式で乱れも多いため、結果は手がかりとして扱います。

Mozilla/5.0 (プラットフォーム; セキュリティ; OS) レンダリングエンジン/バージョン ブラウザ名/バージョン

: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

よくあるクローラーのUser-Agent

クローラーUser-Agentの識別子
GooglebotMozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
BaiduspiderMozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
BingbotMozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)

よくある質問

User-Agentとは何ですか?

ブラウザ、クローラー、クライアントがリクエストと一緒に送る文字列です。ブラウザ系統、OS、端末種別、レンダリングエンジン、botかどうかの手がかりになります。

User-Agentは変更できますか?

多くのブラウザは開発者ツールで上書きできます。ChromeではDevToolsのNetwork conditionsから既定のUser-Agentを外し、別の値を選べます。

User-Agent文字列は信頼できますか?

完全には信頼できません。ブラウザ、bot、プロキシ、プライバシーツール、テストクライアントは偽装や詳細削減ができます。正確性が必要なら機能検出やサーバー側のシグナルも使います。

最近のブラウザが詳細を出さなくなっているのはなぜですか?

受動的なフィンガープリンティングを抑えるためです。一部情報はClient Hintsに移り、ブラウザが必要な項目をより制御された形で出します。