User-Agent ヘッダー
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
User-Agent リクエストヘッダーは、サーバーやネットワークピアがアプリケーション、オペレーティングシステム、ベンダーや、リクエストしているユーザーエージェントのバージョン等を識別できるようにする特性文字列です。
警告: ブラウザーによって異なるウェブページやサービスを提供することが、通常は悪い考えである理由については、ユーザーエージェント文字列を用いたブラウザーの判定をお読みください。
| ヘッダー種別 | リクエストヘッダー |
|---|---|
| 禁止リクエストヘッダー | いいえ |
構文
User-Agent: <product> / <product-version> <comment>
ウェブブラウザーでよくある書式は以下のようなものです。
User-Agent: Mozilla/5.0 (<system-information>) <platform> (<platform-details>) <extensions>
ディレクティブ
<product>-
製品の識別子です。名前または開発コードネームです。
<product-version>-
製品のバージョン番号です。
<comment>-
ゼロ個以上のコメントで、サブ製品情報など、より詳細な情報を含みます。
User-Agent の削減
User-Agentヘッダーに公開される情報は、歴史的にプライバシー上の懸念を引き起こしてきました。特定のユーザーエージェントを識別するために利用され、したがってフィンガープリンティングに悪用される可能性があるためです。こうした懸念を軽減するため、対応ブラウザーでは User-Agent ヘッダーおよび関連 API 機能(Navigator.userAgent、Navigator.appVersion、Navigator.platform など)において、提供される情報の量を削減しています。
例えば、以前は Android 上で動作する Chrome の User-Agent 文字列は以下のようなものだったかもしれません。
Mozilla/5.0 (Linux; Android 16; Pixel 9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.12.45 Mobile Safari/537.36
ユーザーエージェント削減の更新後、現在は以下のようになっています。
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36
- プラットフォームのバージョンは常に固定値であり、この場合は
Android 10です。 - デバイスモデルは常に固定値であり、この場合は
Kです。 - Chrome のメジャーバージョン番号は正しく表示されますが、マイナーバージョン番号は常にゼロ (
0.0.0) として表示されます。
より多くの情報が必要なサーバーは、ユーザーエージェントクライアントヒントを通じて要求できます。初期接続後、サーバーは必要なデータアイテムを詳細に記述した Accept-CH レスポンスヘッダーを送信でき、クライアントは Sec-CH-UA-* ヘッダーを介してデータを返送できます。この情報は、ユーザーエージェントクライアントヒント API からもアクセスできます。
より詳細な情報(必要に応じて追加情報を取得する方法のガイドを含む)については、User-Agent の削減を参照してください。削減された User-Agent 文字列の例は、以下の節でも確認できます。
Firefox の UA 文字列
Firefox や Gecko ベースのユーザーエージェント文字列の詳細については、 Firefox のユーザーエージェント文字列リファレンスを参照してください。 Firefox の UA 文字列は 4 つの部分に分解されます。
Mozilla/5.0 (platform; rv:gecko-version) Gecko/gecko-trail Firefox/firefox-version
Mozilla/5.0は、 Mozilla と互換性があるブラウザーであるということを示す一般的なトークンで、現在はほぼすべてのブラウザーで共通です。- platform は、ブラウザーが動作しているプラットフォーム (Windows, Mac, Linux, Android など)、およびモバイル端末かどうかを示します。 platform が複数の
;で区切られていることに留意してください。後述の詳細と例も併せてご覧ください。 - rv:gecko-version は Gecko のリリースバージョンです ("17.0" など)。最近のブラウザーの gecko-version は firefox-version と同じです。
- Gecko/gecko-trail は、ブラウザーが Gecko を基にしていることを示します。 (デスクトップでは、 gecko-trail は常に
20100101の固定文字列です。) - Firefox/firefox-version は、ブラウザーが Firefox であること、またそのバージョン ("17.0" など) を示しています。
デスクトップの例:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0
Chrome の UA 文字列
Chrome (または Chromium/Blink ベースのエンジン) のユーザーエージェント文字列は Firefox のものと似ています。互換性のため、 KHTML, like Gecko や Safari のような文字列が追加されています。iPhone では "CriOS/<version>" が追加されます。
デスクトップの例:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36
Android スマートフォンの例:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36
Opera の UA 文字列
Opera ブラウザーも Blink エンジンに基づいているので、大部分は同じですが、デスクトップと Android では "OPR/<version>" を追加し、iOS では "OPT/<version>" を追加します。プレビューバージョンでは、Opera は特定のブラウザーのエディションの説明を括弧の中に、 (Edition developer) のように含めます。
デスクトップの例:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 OPR/124.0.0.0 (Edition developer) Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 OPR/124.0.0.0 (Edition developer)
Android スマートフォンの例:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Mobile Safari/537.36 OPR/92.0.0.0
Microsoft Edge の UA 文字列
Edge ブラウザーも Blink エンジンをベースとしています。デスクトップのプラットフォームでは "Edg/<version>" を追加し、Android では "EdgA/<version>"、iPhone では "EdgiOS/<version>" を追加します。
デスクトップの例:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0
Android スマートフォンの例:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36 EdgA/141.0.0.0
Safari の UA 文字列
Safari は WebKit エンジンに基づいていますが、UA 文字列は Blink ベースのブラウザーとも似ています。実際のエンジンビルドバージョン前に Version/xxx という文字列を含める傾向があり、これは Blink ベースのブラウザーとは異なり、ブラウザーのリリースバージョンを示すものです。 iPhone(モバイル)Safari の場合、この文字列には Mobile も含まれます。
メモ: 執筆時点では、Apple 製以外の iPhone のブラウザー(Firefox、Chrome、Edge など)は WebKit を基盤としているため、それらのユーザーエージェント文字列は Safari のユーザーエージェント文字列と類似しています。
デスクトップの例:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15
iPhone の例:
Mozilla/5.0 (iPhone; CPU iPhone OS 18_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1
ユーザーエージェント削減前の例
この節では、ユーザーエージェントの削減が導入される前の、古いバージョンのブラウザーにおけるユーザーエージェント文字列の例をいくつか示します。
Google Chrome:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
Microsoft Edge:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59
Opera:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41
古い Presto ベースの Opera リリースでは、次のような構造が使用されていました。
Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00 Opera/9.60 (Windows NT 6.0; U; en) Presto/2.1.1
クローラーやボットの UA 文字列
>例
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Mozilla/5.0 (compatible; YandexAccessibilityBot/3.0; +http://yandex.com/bots)
ライブラリーやネットツールの UA 文字列
>例
curl/7.64.1
PostmanRuntime/7.26.5
仕様書
| Specification |
|---|
| HTTP Semantics> # field.user-agent> |