User Agentとは — ブラウザ識別文字列の構造と解析方法
User Agent(UA)文字列はブラウザやボットがサーバーに送るHTTPヘッダーで、ブラウザ名・バージョン・OS・デバイス種別の情報を含みます。アクセス解析・コンテンツ出し分け・ボット検出などに活用されます。
User Agent文字列の構造
Chromeの典型的なUAはMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36のように見えます。歴史的な互換性の理由で多くのブラウザがMozilla/5.0を含みます。WindowsはWindows NT 10.0、macOSはMacintosh、iOSはiPhone、AndroidはAndroidと記述されます。
ブラウザとレンダリングエンジンの識別
レンダリングエンジンはChromeとEdgeがBlink(WebKit派生)、FirefoxがGecko、SafariがWebKit、旧IEがTridentを使います。UAのAppleWebKitの有無でWebKitベースか判断しますが、ChromeもAppleWebKitを含むため、Chromeの識別には続くChrome/バージョン番号を確認します。
モバイル・ボットの判定
モバイル判定はMobileキーワードの有無で行うのが一般的です。iPhone・Androidデバイスは多くの場合UAにMobileを含みます。Googlebotのような検索ボットはbot・spider・crawlerなどのキーワードを含みます。User Agent Parserでは自動でデスクトップ/モバイル/タブレット/Botを判定し色分けバッジで表示します。
UAによるコンテンツ出し分けの注意点
UAによるデバイス判定はSafariがiPadOSでデスクトップUAを送るなど、必ずしも正確ではありません。CSSメディアクエリやJavaScriptのwindow.innerWidthによるビューポートベースの判定の方が信頼性が高い場合があります。ボット検出においてもUA偽装が可能なため、IPアドレスや行動パターンも併用することが推奨されます。