Command Palette

Search for a command to run...

Что такое строка пользовательского агента и как ее читать

Что такое строка пользовательского агента и как ее читать

T
Toolz Team
|Aug 31, 2026|16 Мин. читать
Предпочитайте Toolz.dev в Google

Часть коллекции Веб-инструменты

Пользовательский агент Парсер

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

Используйте Пользовательский агент Парсер

Впервые мне пришлось осмыслить строку User-Agent в большом объеме во время SEO-проекта wpadminify.com, глядя на журнал доступа к серверу пытаясь выяснить, какая часть трафика была реальными людьми, а какая - сканерами. у меня был столбец строк, с которого все начиналось Mozilla/5.0все упомянули Safari, и половина из них лгали о том, что они один браузер, будучи на самом деле другим. Чтение их на глаз было безнадежным. это работа, которую выполняет анализатор Пользователь-Агент, и после того, как я сделал это на собственном горьком опыте слишком много раз, я встроил один в Toolz.dev. Это руководство к нему и к удивительно беспорядочному заголовку позади него.

TL;DR: Инструмент анализатор пользовательских агентов берет строку User-Agent и разбивает её на браузер, механизм рендеринга, операционную систему, тип устройства и архитектуру ЦП. Он применяет порядок обнаружения, который требует заголовок 's, поэтому Edge не неправильно читается, поскольку Chrome и мобильное Safari читается из его реального токена версии. Он также помечает известных ботов. все работает на стороне клиента: нет загрузки, нет регистрации, безопасно для реальных строк журнала.

Что такое строка User-Agent?

Строка Пользователь-Агент - это значение User-Agent заголовок запроса, который браузер или HTTP-клиент отправляет практически с каждым запросом Заголовок определен в РФЦ 9110, спецификация HTTP Semantics, которая описывает его как последовательность идентификаторов продуктов и комментариев, которые позволяют серверу идентифицировать программное обеспечение, делающее запрос. на практике он называет браузер, его версию, механизм рендеринга, операционную систему и часто устройство.

Намерение было разумным: дать серверам возможность узнать, что подключается, чтобы они могли адаптировать ответы или собирать статистику. Реальность такова, что строка стала одной из наименее заслуживающих доверия частей данных, сообщаемых самими пользователями в Интернете, не потому, что она вредоносна, а потому, что два десятилетия взломов совместимости накладывали токены на токены до тех пор, пока очевидное чтение обычно не становится неправильным.

Вот современная строка Chrome в Windows:

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

Он утверждает, что является Mozilla, упоминает AppleWebKit, и заканчивается словом Safari.Это не из тех вещей; это Chrome.Каждый токен до Chrome/126 является историческим осадком. парсер существует именно потому, что нельзя доверять токенам, которые выглядят наиболее авторитетными.

Почему анализ User-Agent настолько подвержен ошибкам?

Заголовок рос за счет имитации В ранних войнах браузеров серверы проверяли User-Agent, чтобы решить, какую версию страницы отправить, и они неуклюже проверяли, часто с простым совпадением подстрок Новый браузер, который хотел получить хорошую, современную страницу, должен был содержать токен, который искал сервер, поэтому каждый браузер копировал предыдущего победителя Netscape назвал себя Mozilla, поэтому Internet Explorer утверждал, что он совместим с Mozilla Когда браузеры WebKit прибыли они несли токены Mozilla и KHTML. Chrome разветвился с WebKit и сохранил и AppleWebKit, и Safari, чтобы серверы WebKit-sniffing хорошо относились к нему В результате одна строка может честно содержать имена четырех разных строк браузера.

Это создает бетонные ловушки для всех, кто читает струну:

  • И Edge, и Opera содержат Chrome, йо- Microsoft Edge прилагается Edg/126.0.0.0 и Opera добавляет OPR/, но оба также несут полную Chrome/126 токена, потому что они основаны на Chromium. сначала протестируйте Chrome, и вы пометите каждого пользователя Edge и Opera как Chrome.
  • Сафари скрывает свою настоящую версию. На рабочем столе и на iOS Safari сообщает о своей пользовательской версии в формате a Version/17.5 жетон, пока Safari/604.1 токен ближе к концу - номер сборки WebKit, а не версия браузера. читать Safari/ как версия и вы получаете бессмысленное число.
  • Chrome на iOS - это не движок Chrome's. Apple требует, чтобы все браузеры iOS использовали WebKit, поэтому об этом сообщает Chrome на iPhone CriOS и запускает WebKit, а не Blink. Firefox на iOS есть FxiOS, также ВебКит.
  • Windows 11 не существует в строке. Microsoft никогда не ударяла по токену ядра NT, поэтому об этом сообщают и Windows 10, и Windows 11 Windows NT 10.0. Строка вообще не может отличить их друг от друга.

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

Как работает анализатор пользовательских агентов Toolz?

выше парсер запускает последовательность проверок, порядок которых кодирует ловушки выше. ищет браузеры, которые встраивают другой браузер's токен первым. Edge до Chrome, Opera до Chrome, Samsung Интернет и UC Браузер до Chrome, поэтому заимствованный Chrome токен никогда не выигрывает случайно. Он читает Safari из своего Version/ токен, а не его Safari/ построить токен. Он распознает варианты iOS CriOS а FxiOS как Chrome и Firefox соответственно, при этом их движок правильно указан как WebKit.

Для операционной системы он сопоставляет номер ядра Windows NT с маркетинговым именем, так что Windows NT 6.1 становится Windows 7 и Windows NT 10.0 становится Windows 10 или 11, честно заявленной как пара, потому что строка действительно не может различать их. Он восстанавливает пунктирную форму версий iOS и macOS, которую заголовок пишет с подчеркиваниями, как 17_5, и он распознает Android, Chrome OS и Linux.

Для устройства классифицирует запрос как настольный, мобильный, планшетный или бот. Правило планшета - это скрипка: iPad - это планшет, устройство Android - без него Mobile токен - это планшет, и все, что соответствует Mobile, iPhone, или Windows Phone является телефоном. где строка раскрывает модель устройства, например строку сборки Android или название продукта Apple, синтаксический анализатор отображает ее.

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

Что может сказать вам Пользователь-Агент, а что нет?

Стоит быть точным в отношении пределов, потому что отношение к струне как к факту приводит к неправильным решениям.

Вопрос Может ли UA ответить на него? банкноты
Которое семейство браузеров Обычно да С правильным порядком обнаружения
Точная версия браузера Обычно да Все чаще замораживают или уменьшают
Имя операционной системы Обычно да Windows 10 vs 11 невозможна
Тип устройства Грубо Эвристический, не гарантированный
Точная модель устройства Иногда Только когда строка включает его
Подлинный ли клиент нет Тривиально подделываемый
Размер экрана или возможности нет Вместо этого используйте обнаружение функций

Последние две строки имеют наибольшее значение. пользователь-агент сообщается самостоятельно и может быть изменен в одной строке кода, установлен любым HTTP-клиентом или заморожен браузером для конфиденциальности. скребок может объявить себя как Chrome в Windows, и в строке нет ничего, что могло бы ему противоречить. Таким образом, проанализированный результат говорит вам, что клиент утверждает, что это полезно для статистики и отладки, но не является доказательством чего-либо. Когда вам нужно знать, что браузер на самом деле может сделать, обнаружение функций в JavaScript, а не вывод возможностей из имени. Это тот же принцип, что и при написании устойчивого внешнего кода Набор инструментов для веб-разработчиков облава возвращается к неоднократно.

Исчезают ли строки User-Agent?

Не совсем, но их намеренно уменьшают. браузеры Chromium замораживают и обрезают устаревшую строку в течение нескольких лет, ограничивая уровень детализации, которую она раскрывает, особенно второстепенные номера версий и некоторые особенности платформы. Замена есть Подсказки клиента User-Agent, механизм, при котором сервер запрашивает именно те части клиентской информации, которые ему необходимы Sec-CH-UA заголовки запросов и navigator.userAgentData JavaScript API, вместо того, чтобы получать одну длинную строку, которую он должен проанализировать. Подсказки клиента также являются местом, где наконец становится доступным различие между Windows 10 и 11 Sec-CH-UA-Platform-Version, йо-

Практический результат на ближайшие несколько лет заключается в том, что оба существуют. Классика User-Agent заголовок по-прежнему поставляется по каждому запросу от каждого браузера и каждого клиента, не являющегося браузером, и его по-прежнему считывает множество инструментов, аналитики и логики на стороне сервера. Таким образом, анализ строки остается наиболее портативным способом идентификации клиента, даже если более богатые данные перемещаются в подсказки клиента. Если вы создаете что-то новое и хотите точно версию платформы, прочитайте подсказки клиента; если вы анализируете существующий журнал или поддерживаете самый широкий круг клиентов, проанализируйте строку.

Как мне использовать парсер?

Поток намеренно прост. вставьте строку User-Agent в поле или щелкните один из встроенных образцов, чтобы увидеть репрезентативный рабочий стол, мобильный телефон или строку бота. чтобы захватить свой собственный, откройте консоль браузера и введите navigator.userAgent, затем вставить результат. по мере того, как вы вводите, браузер, движок, операционная система, тип устройства, архитектура ЦП, и обновление флага бота в реальном времени, без кнопки для нажатия. когда вы хотите результат в другом месте, скопируйте его как таблицу, разделенную вкладками, которая вклеивается чисто в электронную таблицу или отчет об ошибке.

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

Где анализатор подходит для других веб-инструментов

Анализатор пользовательских агентов находится в небольшом кластере инструментов запроса и ответа на сайте. Когда вы проверяете трафик домена, поиск домена инструмент отвечает, кто владеет и управляет им. Когда запрос содержит токен на предъявителя, который вам необходимо проверить, Декодер JWT считывает претензии из него. Когда вы в первую очередь создаете аутентифицированный запрос, базовый генератор авто строит Authorization заголовок. И когда вы работаете над тем, как страница представляется сканерам, которые читают ваши страницы под своими собственными пользовательскими агентами, генератор метатегов формирует теги, которые они потребляют.

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

Практический рабочий процесс: чтение журнала трафика

Позвольте мне сделать это конкретизированным с задачей, которая начала меня по этой дороге Вы экспортировали ломтик вашего журнала доступа и вы хотите понять его Наивный подход заключается в том, чтобы глазком показать колонку Пользователь-Агент, которая именно там, где кусаются ловушки. гусеничный, который вежливо идентифицирует себя как Googlebot это легко, но безголовый скребок, объявляющий себя обычной сборкой Chrome, выглядит идентично реальному посетителю, пока вы не проверите другие сигналы.

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

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

Что мне говорят механизм рендеринга и поля ЦП?

Два из проанализированных полей получают меньше внимания, чем браузер и ОС, но оба полезны. движок рендеринга является компонентом, который на самом деле превращает HTML и CSS в пиксели, и это лучший предиктор того, как ведет себя страница, чем имя браузера. Chrome, Edge, Opera, Brave, Samsung Internet, и большинство других имеют общий движок Blink, поэтому ошибка рендеринга, которая появляется в одном обычно появляется во всех из них; Firefox использует Gecko; и Safari, наряду с каждым браузером на iOS, использует WebKit. когда вы тестируете ошибку макета, группировка вашего трафика по движку, а не по имени браузера говорит вам, сколько действительно различных путей рендеринга вам нужно протестировать, а это часто всего три.

Анализатор получает движок от токенов платформы, а не метки браузера, поэтому он может сообщать о Blink для браузера Chromium и WebKit для Safari, даже если оба происходят от одного и того же токена AppleWebKit. Он также ловит старые движки, Trident для Internet Explorer и EdgeHTML для устаревшего Edge, которые все еще появляются в корпоративных журналах.

Поле архитектуры ЦП считывает токены платформы x86_64, Win64, arm64, и их родственники, сообщая, является ли клиент 64-битной, 32-битной, или ARM машиной Это поле, чтобы проверить, когда вы обслуживаете загрузки для конкретной платформы и нужно знать, какая сборка посетителя может запускаться, и это тихий сигнал о том, насколько современна ваша аудитория & #39;s аппаратное обеспечение.

Часто задаваемые вопросы

Что такое строка User-Agent? Строка Пользователь-Агент - это значение HTTP-заголовка Пользователь-Агент, который браузер или клиент отправляет с каждым запросом Это список токенов продукта, в которых упоминается браузер, его механизм рендеринга, операционная система и часто устройство, определенное в RFC 9110. Серверы читают его, чтобы идентифицировать программное обеспечение, подключающееся к ним.

Как мне найти собственного Пользовательского агента? Откройте свой браузер's консоль разработчика и введите navigator.userAgent, затем нажмите Enter. строка, которую он печатает, - это именно то, что ваш браузер отправляет на серверы.Вставьте его в анализатор пользовательского агента, чтобы увидеть браузер, операционную систему и устройство, на которое он декодирует.

Почему в Chrome's User-Agent содержится слово Safari? Для обратной совместимости. Chrome разветвил свой движок от Apple's WebKit, и ранние серверы проверяли на токен Safari перед обслуживанием современных страниц, поэтому Chrome сохранил его, чтобы избежать понижения рейтинга. та же история, почему почти каждый браузер по-прежнему начинает свою строку с Mozilla/5.0.

Может ли пользователь-агент сообщить Windows 10 из Windows 11? Нет. Оба сообщают о Windows NT 10.0, потому что Microsoft никогда не увеличивала токен ядра NT для Windows 11, поэтому строка сама по себе не может отличить их. Современный способ отличить их друг от друга - это подсказки клиента-агента пользователя, в частности заголовок Sec-CH-UA-Platform-Version.

Надежен ли пользователь-агент для идентификации устройства? Это полезный намек, а не доказательство. Пользовательские агенты могут быть изменены в одной строке кода, заданы любым HTTP-клиентом, подделаны скребками или заморожены браузером для конфиденциальности. Относитесь к проанализированному результату как к тому, за что себя выдает клиент, и комбинируйте его с другими сигналами, когда точность имеет значение.

Как парсер обнаруживает ботов и сканеров? Он сопоставляет строку с широким списком известных подписей, включая поисковые сканеры, такие как Googlebot и Bingbot, средства поиска социальных превью и клиенты автоматизации, такие как curl, wget и headless Chrome. Любое совпадение устанавливает флаг бота и классифицирует устройство как сканер.

Безопасно ли вставлять сюда пользовательские агенты журнала производства? Да. весь анализ происходит в вашем браузере с помощью JavaScript, и строка никогда не отправляется ни на один сервер. Вы можете вставлять необработанные строки журнала доступа или настоящие пользовательские агенты посетителей, не покидая свое устройство.

Устаревают ли строки User-Agent? Заголовок замораживается и уменьшается, а не удаляется. браузеры Chromium теперь закрывают детали в устаревшей строке и вместо этого предоставляют более богатые данные через подсказки клиента User-Agent. классическая строка по-прежнему поставляется по каждому запросу, поэтому ее анализ остается наиболее портативным способом чтения данных клиента.

Связанные статьи

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!