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

Инструменты браузера

Мой User-Agent

Что ваш браузер сообщает о себе каждому сайту.

Строка User-Agent

Ваш браузер

Читаем…

Разобрать другой User-Agent

Вставьте строку из журнала сервера, из дампа заголовков или с устройства, на котором нельзя открыть браузер.

Enter разбирает строку. Shift+Enter вставляет перенос строки.

Что это означает

Браузер
—
Версия браузера
—
Движок отрисовки
—
Операционная система
—
Тип устройства
—
Платформа
—
Автоматический клиент
—

Платформа берётся из отдельного интерфейса браузера, а не из строки, поэтому это единственная строка, которую нельзя заполнить для вставленного User-Agent.

Строка User-Agent — это то, что ваш браузер сообщает о себе каждому сайту: семейство и версию браузера, движок отрисовки, операционную систему и иногда модель устройства.

Разбор выполняется в вашем браузере. Вставленную строку тоже можно разобрать — например, из журнала сервера.

Почему строка выглядит так странно

В ней перечислено несколько браузеров сразу, и это не ошибка, а наследие тридцатилетней совместимости: сайты когда-то отдавали разный код в зависимости от браузера, и каждый новый браузер добавлял себе чужие названия, чтобы получать современную версию страницы.

В результате строка почти любого современного браузера содержит слова Mozilla, AppleWebKit, KHTML, Chrome и Safari одновременно. Полезная информация в ней есть, но извлекать её приходится по правилам, а не читать подряд.

Разбор настоящей строки по частям

Возьмём типичную строку Chrome на настольном компьютере: «Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36». Похоже на перечень установленных программ, но почти всё здесь — исторический балласт, который никто уже не решается убрать.

«Mozilla/5.0» отправляют вообще все браузеры, и эта часть не несёт никаких сведений. В скобках указана платформа, и она тоже не обязательно точна: macOS начиная с Big Sur сообщает 10_15_7 независимо от настоящей версии — намеренно, чтобы уменьшить узнаваемость. «AppleWebKit/537.36 (KHTML, like Gecko)» — родословная движка, замороженная больше десяти лет назад, а «Safari/537.36» вовсе не означает, что Safari имеет к происходящему отношение.

Единственная содержательная часть — «Chrome/131.0.0.0», да и в ней младшие разряды версии обнулены специально. Из полутора сотен символов правду о вашем браузере говорит небольшой фрагмент, и знать, какой именно, важнее, чем прочитать строку целиком.

Движок важнее названия браузера

Движок превращает код страницы в изображение на экране: от него зависит, какие возможности доступны сайту и на какие ошибки вы наткнётесь. Общих движков гораздо больше, чем кажется по названиям: Edge, Opera, Brave и Vivaldi — это движок Chrome в другой оболочке, а любой браузер на iPhone — движок Safari, какой бы значок ни стоял на иконке.

Прямо движок в строке не назван, его выводят по признакам. Blink — это «AppleWebKit/537.36» вместе с меткой Chrome; WebKit — «AppleWebKit» любой другой версии; Gecko — номер «rv:» и следом «Gecko/». Старые движки тоже оставляют след: «Trident/» — Internet Explorer, «Presto/» — Opera до 2013 года, «Edge/» — Edge до перехода на Chromium.

На iPhone браузеры признаются в этом тихо: метка Chrome превращается в «CriOS», Firefox — в «FxiOS», Edge — в «EdgiOS». Разбор, который ищет в строке только слово Chrome, здесь ошибётся, и сайт отдаст браузеру код, который тот не выполнит.

Насколько ей можно верить

Строку можно изменить: это делают инструменты разработчика, расширения, боты и режимы совместимости. Поэтому она годится для статистики и для диагностики, но не для решений о безопасности.

Кроме того, браузеры намеренно уменьшают её точность: полные версии, версия системы и модель устройства всё чаще заменяются округлёнными значениями или требуют явного запроса сервера. Если что-то не определилось, это может быть не ошибка разбора, а такая защита.

Что пришло на смену этой строке

Браузеры постепенно переходят на структурированные подсказки: вместо одной длинной строки сервер получает набор отдельных значений и может явным запросом попросить подробности — полную версию, разрядность платформы, модель устройства. Пока сервер не спросит, приходят только общие сведения.

Для сайта это означает, что часть данных теперь надо запрашивать осознанно, а не разбирать из строки. Для читателя — что несовпадение подробностей здесь и в другом инструменте не обязательно ошибка: инструменты могут просто запрашивать разный объём.

Частые вопросы

Почему в моей строке упомянуто несколько браузеров?

Это историческая совместимость. Каждый новый браузер добавлял названия предшественников, чтобы сайты отдавали ему современную версию страницы, и убрать их теперь нельзя.

Можно ли подделать эту строку?

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

Отправляется ли вставленная строка на сервер?

Нет. Разбор выполняется кодом JavaScript в вашем браузере, запрос никуда не уходит, и инструмент работает даже без подключения к сети.