Spec-Zone.ru › Web APIs

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

Экспериментально: Это экспериментальная технология
Перед использованием в продакшене внимательно ознакомьтесь со
таблицей совместимости с браузерами.

API подсказок клиента User-Agent расширяет Client Hints, предоставляя способ отображения информации о браузере и платформе через заголовки ответа и запроса User-Agent, а также JavaScript API.

Концепции и использование

В прошлом получение информации о браузере или устройстве пользователя осуществлялось путем парсинга строки User-Agent. Типичная строка User-Agent выглядит следующим образом, идентифицируя Chrome 92 на Windows:

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

User agent Client Hints нацелены на предоставление этой информации более безопасным для конфиденциальности способом, применяя модель, в которой сервер запрашивает набор информации. Браузер принимает решение о том, что возвращать. Этот подход означает, что user-agent может предоставлять настройки, которые позволяют пользователю скрывать часть информации, которая могла бы идентифицировать его при таких запросах.

Для принятия решения о возвращаемой информации, данные, доступные через этот API, разделены на две группы — подсказки с низкой энтропией и высокой энтропией. Подсказки с низкой энтропией — это те, которые не раскрывают много информации, API предоставляет к ним легкий доступ при каждом запросе. Подсказки с высокой энтропией могут раскрывать больше информации и поэтому ограничены таким образом, что браузер может принять решение о том, предоставить их или нет. Это решение может быть основано на предпочтениях пользователя или запросе разрешения.

Сценарии использования подсказок клиента User-Agent

Возможные сценарии использования включают:

  • Предоставление настраиваемых полифиллов пользователям, определяющим, что их браузеру не хватает некоторых функций веб-платформы.
  • Обход ошибок браузера.
  • Запись аналитики браузера.
  • Адаптация контента на основе информации о user-agent. Это включает предоставление разного контента для мобильных устройств, в частности, для устройств, определённых как маломощные. Это может также включать адаптацию дизайна для настройки интерфейсов под ОС пользователя или предоставление ссылок на специфичные для ОС.
  • Предоставление уведомления, когда пользователь входит в систему с другого браузера или устройства, как функция безопасности.
  • Предоставление правильного исполняемого файла на сайте, предлагающем загрузку.
  • Сбор информации о браузере и устройстве для выявления ошибок приложения.
  • Блокировка спамеров, ботов и веб-краулеров.

Интерфейсы

NavigatorUAData

Предоставляет свойства и методы для доступа к данным о браузере и операционной системе пользователя.

Расширения других интерфейсов

Navigator.userAgentData Только для чтения

Возвращает объект NavigatorUAData, который предоставляет доступ к информации о браузере и операционной системе пользователя.

WorkerNavigator.userAgentData Только для чтения

Возвращает объект NavigatorUAData, который предоставляет доступ к информации о браузере и операционной системе пользователя.

Примеры

Получение брендов

Следующий пример выводит значение NavigatorUAData.brands в консоль.

console.log(navigator.userAgentData.brands);

Возврат значений высокой энтропии

В следующем примере с помощью метода NavigatorUAData.getHighEntropyValues() запрашивается ряд подсказок. При разрешении обещания эта информация выводится в консоль.

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

Спецификации

Спецификация
User-Agent Client Hints

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
User-Agent_Client_Hints_API 90 90 Нет 76 Нет 90 Нет 64 Нет 15.0 Нет
Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
User-Agent_Client_Hints_API 90 90 Нет 76 Нет 90 Нет 64 Нет 15.0 119
secure_context_required 90 90 Нет 76 Нет 90 Нет 64 Нет 15.0 119
Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
User-Agent_Client_Hints_API 90 90 Нет 76 Нет 90 Нет 64 Нет Нет Нет
brands 90 90 Нет 76 Нет 90 Нет 64 Нет Нет Нет
getHighEntropyValues 90 90 Нет 76 Нет 90 Нет 64 Нет Нет Нет
mobile 90 90 Нет 76 Нет 90 Нет 64 Нет Нет Нет
platform 93 93 Нет 79 Нет 93 Нет 66 Нет Нет Нет
toJSON 93 93 Нет 79 Нет 93 Нет 66 Нет Нет Нет

api.NavigatorUAData

Таблицы BCD загружаются только в браузере

api.Navigator.userAgentData

Таблицы BCD загружаются только в браузере

api.WorkerNavigator.userAgentData

Таблицы BCD загружаются только в браузере

См. также

  • Улучшение конфиденциальности пользователей и опыта разработчиков с помощью User-Agent Client Hints
  • Миграция на User-Agent Client Hints

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/User-Agent_Client_Hints_API

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API