Обнаружение 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 вместо агента пользователя по умолчанию для определенных веб-сайтов. Чтобы отобразить список примененных в данный момент переопределений агента пользователя:
Откройте канал Microsoft Edge Beta или Стабильный.
Перейдите по адресу
edge://compat/useragent
.
Каналы Microsoft Edge Canary и Dev в настоящее время не получают переопределения агента пользователя. Каналы Microsoft Edge Canary и Dev предоставляют среды, использующие агент пользователя Microsoft Edge по умолчанию. Используйте каналы Microsoft Edge Canary и Dev для воспроизведения проблем на веб-сайте, вызванных агентом пользователя Microsoft Edge по умолчанию.
Чтобы отключить переопределения агента пользователя в Microsoft Edge Beta или стабильных каналах, выполните следующие действия:
Откройте окно командной строки. Например, введите cmd в текстовое поле Поиск Windows и выберите приложение командной строки .
Скопируйте следующий код:
--disable-domain-action-user-agent-override
Запустите приложение 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 клиентских подсказок