Google Chrome User-Agent文字列の解析

Google Chrome User-Agent文字列を解析して、ブラウザバージョン、OS、レンダリングエンジンを抽出する方法を学びます。Windows、macOS、LinuxでのChromeをカバー。

Desktop Browsers

詳細な説明

Chrome User-Agent文字列の理解

Google ChromeはWeb上で最も広く使用されているUser-Agent文字列フォーマットを持っています。Windowsでの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 — Netscape Navigatorから引き継がれたレガシー互換性トークン。すべてのモダンブラウザがこのプレフィックスを含みます。
  • (Windows NT 10.0; Win64; x64) — OSとプラットフォーム。Windows NT 10.0はWindows 10またはWindows 11にマッピングされます。Win64; x64は64ビットシステムを示します。
  • AppleWebKit/537.36 — レンダリングエンジン識別子。ChromeはBlink(WebKitのフォーク)を使用しますが、互換性のためにWebKitとして報告します。
  • (KHTML, like Gecko) — もう1つのレガシートークン。KHTMLはWebKitのフォーク元であるKonquerorのレンダリングエンジンでした。
  • Chrome/120.0.0.0 — 実際のChromeバージョン。最初の数字(120)はメジャーバージョンで、約4週間ごとに更新されます。
  • Safari/537.36 — WebKit時代から引き継がれたレガシートークン。

異なるOSでのChrome

macOSでは、プラットフォームトークンが変更されます:

(Macintosh; Intel Mac OS X 10_15_7)

Linuxでは:

(X11; Linux x86_64)

Chrome OSでは:

(X11; CrOS x86_64 14541.0.0)

ChromeのUA文字列が冗長な理由

ChromeのUser-Agent文字列にはSafari、WebKit、Gecko、Mozillaのトークンが含まれています。この冗長性は手動での解析をエラーが起きやすくするため、専用のUAパーサーは正確なブラウザ名とバージョンを抽出するために慎重に順序付けられた正規表現パターンを使用します。

ユースケース

Web開発者やアナリティクスエンジニアがChromeのUA文字列を解析して、ブラウザバージョンごとにトラフィックをセグメント化し、新しいCSSやJavaScript機能をサポートしていない古いChromeインストールを特定し、Edge、Opera、BraveなどのChromiumベースのフォークと区別します。

試してみる — User-Agent Parser & Analyzer

フルツールを開く