Web サイトから Microsoft Edge を検出する

Microsoft Edgeを使用すると、Web サイトでユーザー エージェント情報を取得できます。 ユーザー エージェント情報を使用して、ユーザーのブラウザーごとに Web ページを正しく表示します。 ブラウザーは、Web サイトがブランド、バージョン番号、ホスト オペレーティング システムなどのブラウザー情報を検出するメカニズムを提供します。

  • User-Agent クライアント ヒントは 、ブラウザー情報を取得するための改善されたメカニズムです。 以下 の「User-Agent クライアント ヒント」を参照してください。

  • ユーザー エージェントの文字列は従来 の文字列です。それらは古く、Web サイトの互換性の問題を引き起こした歴史があります。 以下 の「User-Agent 文字列」を参照してください。

ブラウザーに基づいてユーザーに異なるエクスペリエンスを提供する場合があります。 たとえば、サイトで使用する Microsoft Edge または別のブラウザーを構成する方法に関する手順を含める場合は、ブラウザーを検出してから、適切なコンテンツを表示できます。

ブラウザー検出のメカニズム:

メカニズム サーバー側 クライアント側
User-Agent クライアント ヒント (推奨) Sec-CH-UA HTTPS ヘッダー navigator.userAgentData JavaScript メソッド
User-Agent 文字列 (レガシ) User-Agent HTTPS ヘッダー navigator.userAgent JavaScript メソッド

機能の検出

Microsoft では 、ブラウザーを検出 する代わりに、可能な限りブラウザーで機能がサポートされているかどうかを検出する方法をお勧めします。

ブラウザーを検出する必要がある場合は、次User-Agent機能検出と共にクライアント ヒントの使用 をお勧めします

User-Agent クライアント ヒント

Microsoft Edgeバージョン 90 User-Agentクライアント ヒントをサポートしています。

User-Agentクライアント ヒントは、ブラウザー名、バージョン番号、プラットフォームなどのブラウザー情報にアクセスするための、よりクリーンでプライバシーを保持する方法です。 すぐに、User-Agent文字列はフリーズされ、さまざまなブラウザーによって非推奨になります。 たとえば、Chrome プラットフォームの状態サイトでは、「機能: ユーザー エージェントの文字列情報を減らす 」の変更について説明します

次User-Agentクライアント ヒントを使用します。

  • ブラウザーの新しいアクティビティが予想されるユーザーからのものかどうかを確認します。
  • ユーザーがこのサイトを初めから使用する場合は、ヒントや手順をカスタマイズします。

クライアント ヒントを次User-Agent使用しない。

  • サポート されていないブラウザーを ブロックします。
  • サイト上の機能へのアクセスを制限します。

詳細については、「W3C グループ下書きレポート: Communityクライアント ヒント」のUser-Agent参照してください

User-Agent クライアント ヒント HTTPS ヘッダー

サーバー Microsoft Edge HTTPS 要求を送信すると、クライアント ヒント ヘッダーに低エントロピー User-Agent送信します。 詳細については、「低エントロピー ヒント テーブル」を参照してください。 サーバーがブラウザーに関するより詳細な情報を必要とする場合、サーバーの応答にはヘッダーが含 Accept-CH まれます。 その応答ヘッダーの値は、サーバーがブラウザーから要求するクライアント ヒント要求ヘッダー (など) のコンマ区切りのリストです Accept-CH: Sec-CH-UA-Full-Version,Sec-CH-UA-Platform-Version。 サーバーに対Microsoft Edge HTTPS 要求の次の処理には、指定したクライアント ヒント ヘッダーUser-Agent含まれます。

既定では、Microsoft Edge、Sec-CH-UAおよび要求Sec-CH-UA-MobileヘッダーをSec-CH-UA-Platform次の形式で送信します。

Sec-CH-UA: "Chromium";v="92", "Microsoft Edge";v="92", "Placeholder;Browser Brand";v="99"
Sec-CH-UA-Mobile: ?0
Sec-CH-UA-Platform: "Windows"

次の表に、使用可能なすべてのヒント要求ヘッダーとサンプル値を示します。

User-Agent要求ヘッダー 応答User-Agentの例
Sec-CH-UA "Chromium";v="91", "Microsoft Edge";v="91", "GREASE";v="99"
Sec-CH-UA-Mobile ?0
Sec-CH-UA-Full-Version 91.0.866.0
Sec-CH-UA-Platform Windows
Sec-CH-UA-Platform-Version 10.0
Sec-CH-UA-Arch x86
Sec-CH-UA-Bitness 64
Sec-CH-UA-Model Surface Pro

注意

User-Agentクライアント ヒントは、 を使用してセキュリティで保護された接続でのみ送信されます HTTPS

User-Agent クライアント ヒント JavaScript API

クライアント側で JavaScript をUser-Agentクライアント ヒントにアクセスできます。 既定値を呼び出す navigator.userAgentData場合は、次の応答を返します。

{
  "brands": [
    {
      "brand": "Chromium",
      "version":"91"
    },
    {
      "brand": "Microsoft Edge",
      "version":"91"
    },
    {
      "brand": "GREASE",
      "version":"99"
    }
  ],
  "mobile": false 
}

Microsoft Edge、時間の変化にGREASE合ったブランド値が含まれます。 サイトのバージョンを検出しようとするときに、サイトがブランド リスト全体に一致Microsoft Edge。

次のような詳細情報の要求を送信するには、 platform次のコードを使用します。

navigator.userAgentData.getHighEntropyValues(
   ["architecture", "model", "platform", "platformVersion", "uaFullVersion"])
      .then(ua => { console.log(ua) });

応答の形式は次のとおりです。

{architecture: "x86",
   model: "",
   platform: "Windows",
   platformVersion: "10.0",
   uaFullVersion: "92.0.866.0"}

詳細については、「 getHighEntropyValues()」を参照してください

platformVersion ヒント

ヘッダー内のオペレーティング システム User-Agent バージョン トークンは、11 のバージョンWindows更新されていないと報告されますWindows NT 10.0

11 のWindows 10と Windowsを区別するには、クライアント ヒントplatformVersionを要求Microsoft Edge。 11 のリリース1.0.012.0.0``14.0.0含む値Windows 10、以降の値は 11 のリリースWindowsします。

クライアント User-Agent機能検出と組み合わせる

クライアント ヒントUser-Agent機能検出を組み合わせること 、互換性のある Web コンテンツを配信する効果的な方法です。 Microsoft では、このパターンを使用して次の使用をお勧めします。

  • コードの保守性を向上します。
  • コードのフラグ設定を減らします。
  • 文字列の変更によるコードのUser-Agentします。

Chrome Chromiumに似たブラウザーを確認する必要がある場合は、Microsoft が検出を推奨します。これは、このエンジンが機能するMicrosoft Edge。

ブランドを確認し、影響を受けるChromiumすべてのブラウザーに検出を適用するには、次のChromium使用します。

function isChromium() {
    for (brand_version_pair of navigator.userAgentData.brands) {
        if (brand_version_pair.brand == "Chromium"){
            return true;
        }
    }
    return false;
}

特定のインデックスでブランドのハードコーディングチェックを回避するには、上記のメソッドを使用します。 ブランド名の表示順序は、時間の間に変化する可能性があります。

機能検出を使用できない場合は、既知のブラウザーのハードコードされたリストChromium使用して検証を行う必要があります。 ハードコードされたブラウザー名の例には、 と が含 Microsoft Edge まれます Google Chrome。 以降のバージョンの Chromium バグの修正は回避する必要があるし、影響を受けるブラウザーを検出するのが難しいため、機能の検出が利用できない場合があります。

User-Agent文字列

User-Agentは古く、Web サイトの互換性の問題を引き起こした長い歴史があります。

可能な限り、文字列に基づいてブラウザー Microsoft Edge検出ロジックの使用を最小限にUser-Agentします。 ブラウザーを検出する理由がある場合は、Microsoft Edgeクライアント ヒントをプライマリ検出ロジックとして使用してくださいまた、ユーザー エージェント クライアント ヒントは 、ブラウザー検出コードの複雑さを軽減します。

従来の参照では、次の情報が文字列にUser-Agentでした。

このWindows HTTP 要求User-Agentヘッダーには、次の情報が含まれます。

Mozilla/5.0 (Windows NT 10.0; Win64; x64)  
AppleWebKit/537.36 (KHTML, like Gecko)  
Chrome/90.0.4430.85  
Safari/537.36  
Edg/90.0.818.46

Android では、HTTP 要求 User-Agent ヘッダーには次の情報が含まれます。

Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N)  
AppleWebKit/537.36 (KHTML, like Gecko)  
Chrome/90.0.4430.85  
Mobile Safari/537.36  
EdgA/90.0.818.46

メソッドの応答値は navigator.userAgent 、次の形式を使用します。

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4501.0 Safari/537.36 Edg/91.0.866.0"

プラットフォーム識別子はオペレーティング システムに基づいて変更され、バージョン番号は時間の間に増加します。 形式は、最後に新しいChromiumをEdg追加したユーザー エージェントの形式と同じです。 Microsoft は、Edg``Edge以前は EdgeHTML に基づく従来のブラウザーで使用された文字列による互換性の問題を回避Microsoft Edge選択しました。 トークン Edg は、iOS および Android で 使用 される既存のトークンと一致しています。

Microsoft Edge増分の変更

Microsoft Edgeのメジャー Edg/99バージョン番号は、2 桁の数字 (など) から 3 桁に増加しますEdg/100。 サイトの所有者は、解析ロジックUser-Agent堅牢で、期待通り動作する必要があります。

さまざまなプラットフォームMicrosoft Edgeの識別子

デスクトップ オペレーティング システムでは、Microsoft Edge文字列Edg内のトークンによって一般的にUser-Agentされます。 ただし、一部のデバイス プラットフォームMicrosoft Edge別のトークンが次のように使用されます。

プラットフォーム 識別子トークン
デスクトップ (Windows/Mac/Linux) Edg
iPhone/iPad EdgiOS
Android (モバイル/タブレット) EdgA

Microsoft Edge 従来版サポートされなくなりました。 詳細については、「Microsoft Edge 従来版」セクションを参照してください。

展開されたブラウザーUser-Agent文字列をマップする

コードでUser-Agentする文字列トークンを人間が読み取り可能なブラウザー名にマップします。 この方法は、Web 全体で一般的です。 Edg新しいトークンをブラウザー名にマップする場合は、従来の Microsoft EdgeHTML ブラウザーで使用されている名前とは異なる名前を使用して、Chromium ベースのブラウザーに適用されない従来の回避策を誤って適用しないようにお勧めします。

User-Agentオーバーライド

Web サイトがユーザー エージェントのMicrosoft Edgeしない場合があります。 その結果、Web サイトの機能のセットが正しく動作しない可能性があります。 Microsoft が問題の種類について通知を受け取った場合、Microsoft はユーザー (Web サイトの所有者) に連絡し、更新されたユーザー エージェントについて通知します。

Microsoft が報告した問題に対処するには、Web サイトのユーザー エージェント検出ロジックを更新してテストする時間が必要な場合があります。 ユーザーの互換性を最大化するために、Microsoft Edge Beta安定チャネルはユーザー エージェントのオーバーライドの一覧を使用します。 Web サイトを更新する場合は、ユーザー エージェントの上書きを使用します。 ユーザー エージェントのオーバーライドの一覧は、Microsoft によって提供されます。

オーバーライドは、特定の Web サイトの既定のユーザー エージェントMicrosoft Edge送信する新しいユーザー エージェント値を指定します。 現在適用されているユーザー エージェントのオーバーライドの一覧を表示するには、次のコマンドを実行します。

  1. [新しいMicrosoft Edge Beta] または [安定] チャネルを開きます。

  2. edge://compat/useragent に移動します。

Canary Microsoft Edge開発チャネルは現在、ユーザー エージェントの上書きを受け取らない。 Canary Microsoft Edge開発チャネルは、既定のユーザー エージェントを使用するMicrosoft Edge提供します。 Canary チャネルMicrosoft Edge Dev チャネルを使用して、既定のユーザー エージェントによって発生した web サイトMicrosoft Edge再現します。

クライアント チャネルまたは Stable チャネルでユーザー エージェントの上書Microsoft Edge Beta無効にする方法は次の方法です。

  1. コマンド プロンプトを開きます。 たとえば、検索テキスト ボックスに cmd と入力Windowsコマンド プロンプト アプリを選択します。

  2. 次のコードをコピーします。

    --disable-domain-action-user-agent-override
    
  3. コピーしたMicrosoft Edgeを使用して、次のようにアプリを実行します。

    {path/to/microsoft/edge.ext} --disable-domain-action-user-agent-override
    

Microsoft Edge 従来版

従来のブラウザーの考慮事項:

  • ブラウザー Microsoft Edge 従来版サポートされなくなりました。 ブログ投稿「新しいページ」を参照Microsoft Edgeを置き換Microsoft Edge 従来版。

  • Microsoft Edge 従来版が使用できるのは、Windows 10。

  • この記事でUser-Agentされているすべての機能メカニズムの中で、サポートされているブラウザー固有のメカニズムはMicrosoft Edge 従来版文字列User-Agentです。

  • トークンUser-Agent含Microsoft Edge 従来版文字列。Edge

    完全に形成された文字列のMicrosoft Edge 従来版 User-Agentします。 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582

関連項目

User-Agent クライアント ヒントを使用して Windows 11 を検出する