ユーザー エージェント文字列でデバイスまたは Web ブラウザーを検出する唯一の方法は、すべての Web ブラウザーが HTTP 1.1 プロトコルに従ってユーザー エージェントを提供する必要があることです。ユーザー エージェント文字列には、複数の製品トークンを含めることができます。慣例により、製品トークンは、アプリケーションを識別する上で重要な順にリストされています。
Mozilla ベースのブラウザーの場合、ユーザー エージェント文字列は次の形式に従います。
MozillaProductToken (MozillaComment) GeckoProductToken *
(VendorProductToken|VendorComment)
Gecko レイアウト エンジンを組み込んだアプリケーションには、次の形式に従うユーザー エージェント文字列が必要です。
ApplicationProductToken (ApplicationComment) GeckoProductToken *
(VendorProductToken|VendorComment)
どこ:
ProductToken : Mozilla/ MozillaVersion
Version : Major . Minor
Comment : ( Platform; Security; OS-or-CPU;
Localization information;
GeckoVersion)*[; Optional Other Comments] )
Platform : Windows, Linux, Mac etc.
Security : N for no security;
U for strong security;
I for weak security
OS-or-CPU : Windows Version/MacOS
GeckoVersion : String starting with "rv:" followed
by the Gecko version
GeckoProductToken: Gecko/GeckoDate
GeckoDate : Date in the format YYYYMMDD
例
Mozilla リリース
Mozilla/5.001 (windows; U; NT4.0; en-US; rv:1.0) Gecko/25250101
上記のブラウザと同じコードベースに基づくブランド リリース
Mozilla/5.001 (Macintosh; N; PPC; ja; rv:1.0) Gecko/25250101
MegaCorpBrowser/1.0 (MegaCorp, Inc.)
ブランド変更されたリリース
Mozilla/9.876 (X11; U; Linux 2.2.12-20 i686, en; rv:2.0) Gecko/
25250101 Netscape/5.432b1 (C-MindSpring)
Gecko ベースのブラウザ
TinyBrowser/2.0 (TinyBrowser Comment; rv:1.9.1a2pre) Gecko/20201231
オペラ
ユーザー文字列の仕様:
Opera/Version (OS-or-CPU; Encryption; Language)
クロム
レンダリング エンジンとして WebKit を使用していますが、別の JavaScript エンジンを使用しています。Chrome の最初のベータ リリースであるバージョン 0.2 では、ユーザー エージェント文字列は、WebKit からのすべての情報と、Chrome バージョンの追加セクションを保持します。形式は次のとおりです。
Mozilla/5.0 (Platform; Encryption; OS-or-CPU; Language)
AppleWebKit/AppleWebKitVersion (KHTML, like Gecko) Chrome/
ChromeVersion Safari/SafariVersion
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML,
like Gecko) Chrome/0.2.149.29 Safari/525.13
コンカラー
KDE Linux デスクトップ環境にバンドルされているブラウザである Konqueror は、KHTML オープンソース レンダリング エンジンに基づいています。Linux でのみ利用可能ですが、Konqueror にはアクティブなユーザー ベースがあります。最適な互換性のために、Konqueror は次のように IE の後にユーザー エージェント文字列をフォーマットすることを選択しました。
Mozilla/5.0 (compatible; Konqueror/3.5; SunOS) KHTML/3.5.0 (like Gecko)
WebKit
2003 年、Apple は、Safari と呼ばれる独自の Web ブラウザーをリリースすると発表しました。WebKit と呼ばれる Safari レンダリング エンジンは、Linux ベースの Konqueror Web ブラウザで使用される KHTML レンダリング エンジンのフォークとして始まりました。しかし、ブラウザーが人気のあるサイトからロックアウトされないようにするにはどうすればよいでしょうか? 答えは、ブラウザが別の一般的なブラウザと互換性があることを Web サイトに納得させるのに十分な情報をユーザー エージェント文字列に入れることです。これにより、次の形式のユーザー エージェント文字列が生成されます。
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/
124 (KHTML, like Gecko) Safari/125.1
モバイルおよびタブレットの指標
UA 文字列のプラットフォーム部分は、Firefox が携帯電話サイズまたはタブレット デバイスで実行されているかどうかを示します。Firefox が phone フォーム ファクタを持つデバイスで実行される場合、Mobile があります。UA 文字列のプラットフォーム部分のトークン。例えば:
Mozilla/5.0 (Android; Mobile; rv:13.0) Gecko/13.0 Firefox/13.0
Mozilla/5.0 (Android; Tablet; rv:13.0) Gecko/13.0 Firefox/13.0
ただし、UA スニッフィングを使用してコンテンツをデバイス フォーム ファクタに向ける場合は、携帯電話のフォーム ファクタとして Mobi (「Mobi」を使用する Opera Mobile を含む) を探し、「Android」とデバイスの間の相関関係を想定しないでください。フォームファクタ。
アンドロイド
Phone : Mozilla/5.0 (Android; Mobile; rv:13.0) Gecko/13.0 Firefox/13.0
Tablet : Mozilla/5.0 (Android; Tablet; rv:13.0) Gecko/13.0 Firefox/13.0
Firefox OS
Phone : Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0