UA-парсер
Онлайн-анализ строк User-Agent для определения браузера, ОС и информации об устройстве
Результаты анализа
Что такое User-Agent?
User-Agent Parser разбирает строку User-Agent на понятные сведения: браузер, операционную систему, тип устройства, rendering engine и иногда признаки bot или client hints. Такие строки встречаются в логах, аналитике, обращениях поддержки, тестах совместимости и расследованиях безопасности, потому что показывают, каким клиентом был сделан запрос. Но это не надежный сигнал идентичности: User-Agent можно подделать, сократить, изменить ради приватности, заморозить или дополнить современными Client Hints. Инструмент полезен для быстрого чтения и сравнения, но не должен быть единственной основой для прав, antifraud, персонализации или критичного таргетинга устройств. Для точности нужны логи, feature detection и клиентские проверки.
Как пользоваться
Как пользоваться
- Вставьте строку User-Agent для разбора в поле ввода
- Или нажмите «Разобрать мой UA», чтобы автоматически определить UA текущего браузера
- Результаты разбора отобразятся ниже: сведения о браузере, системе и устройстве
- Нажмите «Копировать UA», чтобы скопировать исходную строку UA
Ограничения разбора
- Строки User-Agent могут быть подделаны, заморожены или сокращены современными браузерами, поэтому воспринимайте результаты разбора как ориентир.
- При принятии решений о поддержке функций по возможности отдавайте предпочтение определению возможностей, а не проверке имени браузера.
Применение
Технический принцип
Заголовок User-Agent определён в RFC 7231 §5.5.3 как последовательность продуктовых токенов (продукт/версия) и комментариев в скобках, но на практике каждый современный браузер отправляет строку, начинающуюся с литерала Mozilla/5.0. Этот префикс восходит к 1993 году, когда сайты определяли NCSA Mosaic по наличию «Mozilla»; Netscape принял Mozilla, Internet Explorer 3 добавил его для совместимости, и каждое последующее ответвление (Safari, Chrome, Edge, Opera) сохранило эту условность. Не существует формальной грамматики, определяющей, где располагается ОС, куда идёт версия движка и какой токен побеждает, когда несколько браузеров перечисляют друг друга ради совместимости, поэтому разбор выполняется с помощью приоритизированного списка регулярных выражений по четырём классическим осям: браузер, движок, ОС, устройство. Библиотеки с открытым исходным кодом, такие как ua-parser-js, bowser и порты UAParser на Lua/Python, используют одни и те же файлы паттернов. С 2022 года Chrome внедряет сокращение UA: версия браузера замораживается на MAJOR.0.0.0, а платформо-специфичные минорные токены удаляются, поэтому распарсенный Chrome 120.0.0.0 на Windows на самом деле означает Chrome 120-что-то на Windows 10 или 11, а точная сборка скрыта за Client Hints. Современная замена — User-Agent Client Hints (draft-ietf-httpbis-client-hints), которые предоставляют Sec-CH-UA, Sec-CH-UA-Mobile и Sec-CH-UA-Platform при каждом запросе, а значения с высокой энтропией (модель, полная версия, архитектура) — через navigator.userAgentData.getHighEntropyValues(). UA-парсер по-прежнему полезен для анализа логов и выявления ботов, но определение возможностей и Client Hints должны определять любую логику ветвления во время выполнения.
- RFC 7231 §5.5.3 определяет User-Agent как продуктовые токены плюс комментарии, без грамматики для ОС или устройства — каждый парсер использует свой список регулярных выражений.
- Префикс Mozilla/5.0 — это хак совместимости 1993 года из эпохи Mosaic; Safari, Chrome и Edge сохраняют его, чтобы не ломать сайты с определением браузера.
- Сокращение Chrome UA (внедрялось в 2022–2023 гг.) замораживает минорную версию на 0.0.0 и фиксирует строку платформы — реальные номера сборок находятся в Sec-CH-UA-Full-Version-List.
- User-Agent Client Hints предоставляют Sec-CH-UA, Sec-CH-UA-Mobile, Sec-CH-UA-Platform при каждом запросе; поля с высокой энтропией требуют navigator.userAgentData.getHighEntropyValues(['model','platformVersion','architecture']).
- Обнаружение ботов по ключевым словам (bot, crawler, spider, Googlebot, Bingbot, Baiduspider, YandexBot) выявляет вежливых краулеров, но не скрейперов-нарушителей, копирующих настоящий Chrome UA — комбинируйте с лимитами частоты запросов и поведенческими сигналами.
- Определение мобильного устройства или планшета основывается на токенах (Mobile, Tablet, iPhone, iPad), а не на размере экрана; Android UA без токена Mobile рассматривается большинством парсеров как планшет.
- Кэши и CDN, использующие Vary: User-Agent, могут разбить один ресурс на тысячи кэш-записей — предпочитайте Vary: Sec-CH-UA-Mobile или миритесь с низким процентом попаданий.
Примеры
Браузер Chrome
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36Safari на iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 Version/17.0 Mobile/15E148 Safari/604.1Google Bot
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)Часто задаваемые вопросы
Что извлекает разбор User-Agent?
Название и версию браузера (например, «Chrome 124»), операционную систему и её версию, тип устройства (десктоп/мобильный/планшет), архитектуру CPU, движок рендеринга (Blink/Gecko/WebKit) и классификацию ботов/краулеров, если UA соответствует известному шаблону.
Насколько точен разбор UA?
Хорошо работает для распространённых, известных браузеров. Сложности возникают с: совершенно новыми версиями до обновления библиотеки парсера; браузерами, имитирующими Chrome/Safari ради обхода детекции; ботами, подделывающими UA реального браузера; встроенными WebView, в которых UA указывает на хост-приложение, а не на движок.
Почему строка User-Agent стала менее полезной?
Производители браузеров (во главе с Chrome) «замораживают» строки UA, чтобы ограничить fingerprinting, и продвигают UA Client Hints (заголовки Sec-CH-UA-*). Через несколько лет строки UA будут возвращать стабильные, низкоэнтропийные значения, а реальные данные об устройстве — жить в client hints. Код стоит миграционно перевести на них.
Стоит ли использовать UA-детекцию для feature gating?
Почти никогда. UA может врать, а поддержка возможностей различается даже между версиями одного браузера. Используйте feature-detection в стиле `if ('serviceWorker' in navigator)`. UA-детекция допустима для аналитики, тикетов поддержки и классификации баг-репортов — но не для выбора API.
Можно ли разобрать собственный UA?
Да. Страница показывает текущий UA вашего браузера сверху и разбирает его на компоненты. Удобно, когда нужно точно знать, какую версию ваш браузер сообщает серверам.
Как насчёт детекции ботов?
Парсер помечает добропорядочных ботов, которые сами себя идентифицируют (Googlebot, Bingbot, Slackbot). Вредоносные боты обычно выдают себя за реальные браузеры, поэтому детекция только по UA — слабая защита. Для реальной защиты сочетайте с rate limit, CAPTCHA и поведенческими сигналами.
Загружается ли UA куда-либо?
Нет. Разбор выполняется в браузере JS-библиотекой (обычно ua-parser-js). Вставленные строки UA не отправляются на сервер.