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の識別子 |
|---|---|
| Googlebot | Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) |
| Baiduspider | Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html) |
| Bingbot | Mozilla/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に移り、ブラウザが必要な項目をより制御された形で出します。