Бөлісу құралы:


Обнаружение Microsoft Edge с веб-сайта

Microsoft Edge позволяет веб-сайту получать сведения об агенте пользователя. Сведения об агенте пользователя используются для правильного представления веб-страниц для браузера каждого пользователя. Браузеры предоставляют веб-сайтам механизмы для обнаружения сведений о браузере, таких как торговая марка, номер версии и операционная система узла.

Вы можете предоставить пользователям различные возможности в зависимости от их браузера. Например, если включить инструкции по настройке Microsoft Edge или другого браузера для использования с сайтом, может потребоваться обнаружить браузер, а затем отобразить соответствующее содержимое.

Механизмы обнаружения в браузере:

Механизм На стороне сервера На стороне клиента
Указания клиента агента пользователя (рекомендуется) Sec-CH-UA Заголовок HTTPS navigator.userAgentData Метод JavaScript
Строка агента пользователя (устаревшая версия) User-Agent Заголовок HTTPS navigator.userAgent Метод JavaScript

Обнаружение компонентов

Корпорация Майкрософт рекомендует по возможности определять, поддерживается ли функция в браузере, а не обнаруживать браузер.

Если необходимо обнаруживать браузеры, корпорация Майкрософт рекомендует использовать User-Agent указания клиентов, как показано ниже, вместе с обнаружением функций.

User-Agent указания клиента

Microsoft Edge поддерживает User-Agent указания клиента.

User-Agent клиентские подсказки — это метод, который решает проблемы конфиденциальности, позволяя веб-страницам обнаруживать сведения о браузере, такие как имя браузера, номер версии, платформа и многое другое. Вскоре строка User-Agent будет заморожена и устарела различными браузерами. Например, на сайте Состояние платформы Chrome описано изменение в статье Сведения о строке компонента: сокращение действия агента пользователя.

Используйте User-Agent клиентские подсказки, когда вы хотите:

  • Определите, является ли действие нового браузера ожидаемым пользователем.
  • Настройте подсказки или инструкции, если пользователь не работает на этом сайте.

Не используйте User-Agent клиентские подсказки для:

  • Блокировать неподдерживаемые браузеры.
  • Ограничьте доступ к функциям на сайте.

Дополнительные сведения см. в спецификации в статье W3C Community Group Draft Report: User-Agent Client Hints.

заголовок HTTPS User-Agent клиентских подсказок

Когда Microsoft Edge отправляет HTTPS-запрос на сервер, он отправляет набор заголовков с низкой энтропией User-Agent клиентских подсказок. Дополнительные сведения см. в таблице подсказок низкой энтропии. Если серверу требуются более подробные сведения о браузере, его ответ включает заголовок Accept-CH . Значение этого заголовка ответа представляет собой разделенный запятыми список всех заголовков запросов клиентских подсказок, которые требуется серверу из браузера, например Accept-CH: Sec-CH-UA-Full-Version,Sec-CH-UA-Platform-Version. Следующий HTTPS-запрос Microsoft Edge к серверу будет включать указанные заголовки 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 "Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"
Sec-CH-UA-Mobile ?0
Sec-CH-UA-Full-Version 120.0.2210.91
Sec-CH-UA-Platform Windows
Sec-CH-UA-Platform-Version 15.0.0
Sec-CH-UA-Arch x86
Sec-CH-UA-Bitness 64
Sec-CH-UA-Model Surface Pro

User-Agent указания клиента отправляются только через безопасные подключения с помощью HTTPS.

API JavaScript для подсказок клиента User-Agent

Получить доступ к подсказкам клиента User-Agent можно с помощью JavaScript на стороне клиента. При вызове по умолчанию navigator.userAgentDataвозвращается следующий ответ.

{
  "brands": [
    {
      "brand": "Not_A Brand",
      "version":"8"
    },
    {
      "brand": "Chromium",
      "version":"120"
    },
    {
      "brand": "Microsoft Edge",
      "version":"120"
    }
  ],
  "mobile": false,
  "platform": "Windows"
}

Чтобы отправить запрос на получение более подробных сведений, например platform, используйте следующий код:

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

Ответ имеет следующий формат:

{
  "architecture": "x86",
  "brands": [
    {
      "brand": "Not_A Brand",
      "version": "8"
    },
    {
      "brand": "Chromium",
      "version": "120"
    },
    {
      "brand": "Microsoft Edge",
      "version": "120"
    }
  ],
  "mobile": false,
  "platform": "Windows",
  "platformVersion": "15.0.0",
  "uaFullVersion": "120.0.2210.91"
}

Дополнительные сведения см. в статье NavigatorUAData: метод getHighEntropyValues() в MDN.

Указание platformVersion

Маркер версии операционной системы в заголовке User-Agent не был обновлен для Windows 11 и по-прежнему сообщает .Windows NT 10.0

Чтобы различать Windows 10 и Windows 11, запросите platformVersion указание клиента в Microsoft Edge. Значения между и включением 1.0.0 и 12.0.0 представляют выпуски Windows 10, а значения или более поздние 14.0.0 — выпуски Windows 11.

Объединение User-Agent клиентских указаний с обнаружением функций

Объединение User-Agent клиентских указаний с обнаружением функций — эффективный способ доставки совместимого веб-содержимого. Корпорация Майкрософт рекомендует использовать этот шаблон, чтобы:

  • Повышение удобства обслуживания кода.
  • Снижение уязвимости кода.
  • Уменьшите количество сбоев кода при изменениях в строке User-Agent.

Если вам нужно проверка для браузера, похожего на Chrome, корпорация Майкрософт рекомендует определить Chromium, который является подсистемой, которая обеспечивает 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 строки устарели и имеют долгую историю возникновения проблем с совместимостью веб-сайтов.

По возможности корпорация Майкрософт рекомендует минимизировать использование логики обнаружения браузера Microsoft Edge на основе строки User-Agent. Если у вас есть веская причина для обнаружения браузера, команда Microsoft Edge рекомендует использовать указания клиента агента пользователя в качестве основной логики обнаружения. Указания клиента агента пользователя также снижают сложность кода обнаружения браузера.

Для справки по устаревшим версиям в строку User-Agent были включены следующие сведения.

В Windows User-Agent заголовок HTTP-запроса включает:

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

В Android заголовок User-Agent HTTP-запроса включает:

Mozilla/5.0 (Linux; Android 10; K)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/120.0.0.0
Mobile Safari/537.36
EdgA/120.0.0.0

Значение ответа из navigator.userAgent метода использует следующий формат:

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

Идентификаторы платформы изменяются в зависимости от операционной системы, а номера версий увеличиваются с течением времени. Формат совпадает с Chromium агентом пользователя с добавлением нового Edg маркера в конце. Корпорация Майкрософт выбрала Edg маркер, чтобы избежать проблем совместимости, вызванных строкой Edge , которая ранее использовалась для устаревшего браузера Microsoft Edge на основе EdgeHTML. Маркер Edg также соответствует существующим маркерам , используемым для iOS и Android.

Идентификаторы Для 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 строковые маркеры с именами браузеров, читаемыми человеком, для использования в коде. Такая практика распространена в Интернете. При сопоставлении Edg маркера с именем браузера корпорация Майкрософт рекомендует использовать имя, отличное от имени, используемого для устаревшего браузера Microsoft EdgeHTML, чтобы избежать случайного применения устаревших обходных решений, которые не применяются к браузерам на основе Chromium.

переопределения User-Agent

Иногда веб-сайт не распознает агент пользователя Microsoft Edge. В результате набор функций веб-сайта может работать неправильно. Когда корпорация Майкрософт получает уведомление о типах проблем, корпорация Майкрософт связывается с вами (владельцем веб-сайта) и информирует вас об обновленном агенте пользователя.

Вам может потребоваться больше времени, чтобы обновить и проверить логику обнаружения агента пользователя для веб-сайта, чтобы устранить проблемы, о которые сообщила корпорация Майкрософт. Чтобы обеспечить максимальную совместимость для пользователей, каналы Microsoft Edge Beta и Stable используют список переопределений агента пользователя. Используйте переопределения агента пользователя при обновлении веб-сайта. Список переопределений агента пользователя предоставляется корпорацией Майкрософт.

Переопределения указывают новые значения агента пользователя, которые Отправляет Microsoft Edge вместо агента пользователя по умолчанию для определенных веб-сайтов. Чтобы отобразить список примененных в данный момент переопределений агента пользователя:

  1. Откройте канал Microsoft Edge Beta или Стабильный.

  2. Перейдите по адресу edge://compat/useragent.

Каналы Microsoft Edge Canary и Dev в настоящее время не получают переопределения агента пользователя. Каналы Microsoft Edge Canary и Dev предоставляют среды, использующие агент пользователя Microsoft Edge по умолчанию. Используйте каналы Microsoft Edge Canary и Dev для воспроизведения проблем на веб-сайте, вызванных агентом пользователя Microsoft Edge по умолчанию.

Чтобы отключить переопределения агента пользователя в 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 больше не поддерживается. См. запись блога New 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

См. также

Обнаружение Windows 11 с помощью User-Agent клиентских подсказок