Перейти к основному содержимому

User-Agent Client Hints и сокращение UA

Браузеры на базе Chromium отправляют сокращённую строку User-Agent: детали, которые точнее всего идентифицировали устройство, заморожены на фиксированных значениях, а точные данные перенесены в User-Agent Client Hints (UA-CH), которые сайт должен запросить. В этом руководстве устаревшая строка Chrome на Android разбирается рядом с сокращённой.

Разобранный пример

Устаревший Chrome на Android (до сокращения)
Mozilla/5.0 (Linux; Android 12; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 Mobile Safari/537.36
Браузер
Chrome 99.0.4844.88
Движок
Blink
Операционная система
Android 12
Класс устройства
Мобильный
Устройство
Samsung SM-G991B
Архитектура CPU
Неизвестно
Бот / краулер
Нет
Сокращённый Chrome на Android
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36
Браузер
Chrome 120.0.0.0
Движок
Blink
Операционная система
Android 10
Класс устройства
Мобильный
Устройство
K
Архитектура CPU
Неизвестно
Бот / краулер
Нет

Устаревшая строка раскрывает Android 12, модель Samsung SM-G991B и полную версию 99.0.4844.88. В сокращённой строке Android 10 и модель K — заглушки, которые отправляет любое устройство Android, а версия заканчивается на .0.0.0. Парсер сообщает ровно то, что написано в строке, — Android 10, модель K, — поэтому реальную информацию несут только основная версия 120 и токен Mobile.

Низкоэнтропийные подсказки, которые браузер на Chromium отправляет по умолчанию, и заголовок ответа Accept-CH, запрашивающий дополнительные
Sec-CH-UA: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"
Sec-CH-UA-Mobile: ?1
Sec-CH-UA-Platform: "Android"

Accept-CH: Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List

Основные правила

  • В сокращённых строках Chrome остаётся только основная версия; минорная версия, сборка и патч всегда равны 0.0.0.
  • На Android версия ОС зафиксирована на 10, а модель устройства заменена на K. На настольных системах платформа заморожена на значениях вроде Windows NT 10.0; Win64; x64, Macintosh; Intel Mac OS X 10_15_7 или X11; Linux x86_64.
  • По HTTPS браузеры на Chromium по умолчанию отправляют три низкоэнтропийные подсказки: Sec-CH-UA (бренды и основные версии), Sec-CH-UA-Mobile и Sec-CH-UA-Platform.
  • Подробные подсказки, такие как Sec-CH-UA-Platform-Version, Sec-CH-UA-Model и Sec-CH-UA-Full-Version-List, отправляются только после того, как сервер запросит их в заголовке ответа Accept-CH. В JavaScript используйте navigator.userAgentData.getHighEntropyValues().
  • Список брендов содержит намеренно поддельную запись «GREASE», например «Not_A Brand». Ищите нужный бренд, а не сравнивайте заголовок целиком.
  • Windows 11 по-прежнему отправляет Windows NT 10.0 в строке User-Agent; Windows 11 определяется по значению Sec-CH-UA-Platform-Version 13.0.0 или выше.
  • Client hints — функция Chromium, поэтому для других браузеров оставляйте запасной вариант на основе User-Agent. Этот парсер читает только строку User-Agent, а не client hints.

Другие руководства по user agent