Разбор User-Agent
Разберите строку user agent на браузер, движок, операционную систему, устройство и процессор, начиная со строки вашего собственного браузера.
Работает полностью в браузере
Client Hints вашего браузера
Разбор использует ua-parser-js 1.0.41 (MIT) и основан на шаблонах, поэтому необычные или подделанные строки могут быть прочитаны неверно. Client Hints показываются только для браузера, которым вы пользуетесь сейчас, и только если он их поддерживает (браузеры на Chromium — да; Firefox и Safari — нет).
Как читать строку user agent
- User agent вашего браузера разбирается сразу после загрузки страницы. Чтобы проверить другой, вставьте его в поле, например из журнала сервера.
- Прочитайте строки браузера, движка, операционной системы, устройства и процессора. Воспринимайте их как то, что утверждает строка, а не как доказанные факты.
- Для своего браузера сравните результат с разделом Client Hints, который может показать подробности, опущенные в сокращённой строке.
Что user agent сообщает и что скрывает
User agent появился как способ для сервера видеть, какой браузер его запрашивает, чтобы отправить страницу, которая в нём работает. Затем браузеры стали копировать названия друг друга, чтобы получать хорошие страницы, поэтому сегодня строка Chrome упоминает Mozilla, AppleWebKit, KHTML, Gecko и Safari. Разбор обходит это, проверяя шаблоны в тщательно выбранном порядке и выбирая самое точное совпадение.
Строку к тому же намеренно сокращают. Сокращение User-Agent в Chrome фиксирует версию Windows на NT 10.0, версию macOS на 10_15_7, модель Android на K и номер сборки на 0.0.0, чтобы строка перестала быть хорошим отпечатком. Подробности никуда не делись: страница, запросившая их через Client Hints, получает версию платформы, архитектуру, модель и полную версию браузера, а браузер посетителя решает, отвечать ли.
Используйте строку для грубых решений и журналов, а не для доверия. Поисковые роботы и программы командной строки вроде curl отправляют свои короткие строки, а подделать можно что угодно. Если вы ищете ошибку вёрстки, определение возможностей на странице надёжнее, чем чтение названия браузера.
Советы
- В журнале сервера много ответов 403 или 429 для одного клиента? Найдите коды в справочнике «Коды состояния HTTP».
- User agent в URL или строках запроса часто закодированы процентным кодированием; декодируйте их в «Кодирование и декодирование URL».
- Заголовки, скопированные из запроса, иногда содержат значения Base64; прочитайте их в «Кодирование и декодирование Base64».
Вопросы и ответы
Что такое строка user agent?
Это строка текста, которую браузер или программа отправляет с каждым веб-запросом, сообщая, что она такое. Из-за десятилетий уловок ради совместимости почти каждый браузер начинает с Mozilla/5.0 и упоминает несколько других браузеров, поэтому для её чтения нужно сопоставление с шаблонами, а не простое разделение.
Почему Windows 11 отображается как Windows 10?
Chrome и другие браузеры на Chromium зафиксировали часть строки с платформой на «Windows NT 10.0» независимо от реальной версии Windows. Различить их могут только Client Hints: версия платформы 13 или выше означает Windows 11. Эта страница показывает такое значение для вашего браузера, если оно доступно.
Почему мой iPad сообщает, что он Mac?
Начиная с iPadOS 13, Safari по умолчанию запрашивает версии сайтов для компьютеров и отправляет user agent Macintosh. По одной строке нельзя отличить Mac от iPad, хотя страница может проверить наличие сенсорного экрана. То же относится к macOS: версия в строке зафиксирована на 10_15_7.
Что такое сокращение User-Agent?
Chrome постепенно убирает подробности из строки, чтобы уменьшить пассивное отслеживание: младшая версия показывается как 0.0.0, модель устройства Android — одной буквой K, а версия ОС фиксирована. Сайтам, которым нужны подробности, приходится запрашивать их через Client Hints.
Что такое Client Hints?
Это структурированные заголовки и API JavaScript (navigator.userAgentData), позволяющие странице запросить отдельные сведения, например архитектуру или полную версию браузера, вместо того чтобы читать их из строки. Сегодня их поддерживают только браузеры на основе Chromium.
Можно ли доверять user agent при принятии решений о безопасности?
Нет. Любой может отправить любую строку, а боты часто притворяются Chrome. Для статистики и выбора вёрстки это допустимо, но не для контроля доступа. Чтобы проверить Googlebot, сайт вместо этого проверяет IP-адрес посетителя обратным DNS-запросом.