Ваш браузер отправляет свой пользовательский агент на каждый веб-сайт, к которому вы подключаетесь. Мы уже писали об изменении пользовательского агента веб браузера — но что такое User Agent?
Пользовательский агент (User Agent) — это строка текста, идентифицирующая браузер и операционную систему для веб-сервера. Это звучит просто, но со временем в пользовательских агентах стало много запутанного.
Основы
Когда ваш браузер подключается к веб-сайту, он добавляет поле User-Agent в передаваемые им HTTP заголовки. Содержимое поля пользовательского агента варьируется от браузера к браузеру. Каждый браузер имеет свой собственный, уникальный пользовательский агент. По сути, пользовательский агент — это способ для браузера сказать «Привет, я Mozilla Firefox в Windows» или «Привет, я Safari на iPhone» веб-серверу.
Веб-сервер может использовать эту информацию для обслуживания разных веб-страниц для разных веб-браузеров и разных операционных систем. Например, веб-сайт может отправлять мобильные страницы в мобильные браузеры, современные страницы в современные браузеры и сообщение «Пожалуйста, обновите ваш браузер» для Internet Explorer 6.
Понимание пользовательских агентов
Например, вот пользовательский агент Firefox в Windows 7:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
Этот пользовательский агент довольно много говорит веб-серверу: операционная система Windows 7 (кодовое имя Windows NT 6.1), это 64-разрядная версия Windows (WOW64), а сам браузер Firefox 12.
Теперь давайте посмотрим на пользовательский агент Internet Explorer 9, который:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Строка агента пользователя идентифицирует браузер как IE 9 с механизмом рендеринга Trident 5. Однако вы можете заметить что-то непонятное — IE идентифицирует себя как Mozilla.
Мы вернёмся к этому через минуту. Но сначала, давайте также рассмотрим пользовательский агент Google Chrome:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Всё ещё хуже: Chrome притворяется и Mozilla, и Safari. Чтобы понять почему, нам нужно изучить историю пользовательских агентов и браузеров.
Что означает строка пользовательского агента
Mosaic был одним из первых браузеров. Его строка агента пользователя была NCSA_Mosaic/2.0. Позже появился Mozilla (позже переименованный в Netscape), а его пользовательским агентом был Mozilla/1.0. Mozilla был более продвинутым браузером, чем Mosaic — в частности, он поддерживал фреймы. Веб-серверы проверяли, что пользовательский агент содержит слово Mozilla, и отправили страницы, содержащие фреймы, в браузеры Mozilla. В другие браузеры веб-серверы отправляли старые страницы без фреймов.
В конце концов появился Microsoft Internet Explorer, который также поддерживал фреймы. Однако IE не получал веб-страницы с фреймами, потому что веб-серверы просто отправляли их в браузеры Mozilla. Чтобы решить эту проблему, Microsoft добавила слово Mozilla к своему пользовательскому агенту и добавила дополнительную информацию (слово «compatible» и ссылку на IE). Веб-серверы были рады видеть слово Mozilla и отправили IE на современные веб-страницы. Другие браузеры, которые появились позже, делали то же самое.
В конце концов, некоторые серверы искали слово Gecko — движок рендеринга Firefox — и обслуживали браузеры Gecko на иных страницах, чем старые браузеры. KHTML — изначально разработанный для Konquerer на рабочем столе KDE в Linux — добавил слова «как Gecko», чтобы они также получили современные страницы, разработанные для Gecko. WebKit был основан на KHTML — когда он разрабатывался, они добавили слово WebKit и сохранили оригинальную строку «KHTML, like Gecko» в целях совместимости. Таким образом, разработчики браузеров со временем добавляли слова в свои пользовательские агенты.
Веб-серверам все равно, какая именно строка пользовательского агента, - они просто проверяют, содержит ли она определённое слово.
Использование
Веб-серверы используют пользовательские агенты для различных целей, включая:
- Показ разных веб-страниц в разных браузерах. Это может быть использовано во благо — например, для показа более простых веб-страниц для старых браузеров — или для зла — например, для отображения сообщения «Эта веб-страница должна просматриваться в Internet Explorer».
- Отображение разного контента для разных операционных систем — например, путём отображения оптимизированной страницы на мобильных устройствах.
- Сбор статистики, показывающей браузеры и операционные системы, используемые их пользователями. Если вы когда-либо видите статистику доли рынка браузеров, это то, как они получены.
Боты для веб-сканирования также используют пользовательские агенты. Например, веб-сканер Google идентифицирует себя как:
Googlebot/2.1 (+http://www.google.com/bot.html)
Веб-серверы могут предоставлять ботам особый режим — например, позволяя им пропускать необходимость регистрации. (Да, это означает, что иногда вы можете обойти страницы регистрации, установив в своём пользовательском агенте Googlebot.)
Веб-серверы также могут отдавать приказы определенным ботам (или всем ботам) с помощью файла robots.txt. Например, веб-сервер может указать конкретному боту, что он должен уйти, или сказать другому боту, чтобы он индексировал только определённые области веб-сайта. В файле robots.txt боты идентифицируются по строкам пользовательских агентов.
Все основные браузеры содержат способы подмены пользовательских агентов, чтобы вы могли видеть, какие страницы веб-серверы отправляются в разные браузеры. Например, установите в браузере на своём компьютере строку агента пользователя мобильного браузера, и вы увидите мобильные версии веб-страниц на рабочем столе.
Для проверки своего User Agent вы можете использовать этот сервис: https://suip.biz/ru/?act=my-user-agent
Связанные статьи:
- Как изменить User Agent без установки расширений (100%)
- Как заблокировать сайты от себя, чтобы не терять время (54.2%)
- Как запретить всем сайтам показывать запрос на показ уведомлений (54.2%)
- Как очистить кэш и файлы cookie в Mozilla Firefox (53.4%)
- Как сделать Firefox браузером по умолчанию в Windows 10 (53.4%)
- Google наконец-то добавляет способ блокировать спам на Диске (RANDOM - 50%)