Как сделать

Что такое пользовательский агент браузера?

image

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

Пользовательский агент — это «строка», то есть строка текста, идентифицирующая браузер и операционную систему для веб-сервера. Это звучит просто, но со временем пользовательские агенты превратились в беспорядок.

Основы

Когда ваш браузер подключается к веб-сайту, он включает поле 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

image

Этот пользовательский агент довольно много говорит веб-серверу: операционная система Windows 7 (кодовое имя Windows NT 6.1), это 64-разрядная версия Windows (WOW64) и сам браузер Firefox 12.

Теперь давайте посмотрим на пользовательский агент Internet Explorer 9, который:

Mozilla / 5.0 (совместимый; MSIE 9.0; Windows NT 6.1; WOW64; Trident / 5.0)

image

Строка агента пользователя идентифицирует браузер как IE 9 с механизмом рендеринга Trident 5. Однако вы можете заметить что-то непонятное — IE идентифицирует себя как Mozilla.

Мы вернемся к этому через минуту. Во-первых, давайте также рассмотрим пользовательский агент Google Chrome:

Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 536,5 (KHTML, как Gecko) Chrome / 19.0.1084.52 Safari / 536,5

image

Сюжет сгущается: Chrome притворяется и Mozilla, и Safari. Чтобы понять почему, нам нужно изучить историю пользовательских агентов и браузеров.

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

Mosaic был одним из первых браузеров. Его строка агента пользователя была NCSA_Mosaic / 2.0. Позже появился Mozilla (позже переименованный в Netscape), и его агентом был Mozilla / 1.0. Mozilla был более продвинутым браузером, чем Mosaic — в частности, он поддерживал фреймы. Веб-серверы проверили, что пользовательский агент содержит слово Mozilla, и отправили страницы с фреймами в браузеры Mozilla. В другие браузеры веб-серверы отправляли старые страницы без фреймов.

В конце концов появился Microsoft Internet Explorer, который также поддерживал фреймы. Однако IE не получал веб-страницы с фреймами, потому что веб-серверы просто отправляли их в браузеры Mozilla. Чтобы решить эту проблему, Microsoft добавила слово Mozilla к своему пользовательскому агенту и добавила дополнительную информацию (слово «совместимый» и ссылку на IE). Веб-серверы были рады видеть слово Mozilla и отправили IE современные веб-страницы. Другие браузеры, которые появились позже, делали то же самое.

image

В конце концов, некоторые серверы искали слово Gecko — движок рендеринга Firefox — и обслуживали браузеры Gecko на разных страницах, чем старые. KHTML — изначально разработанный для Konquerer на рабочем столе KDE в Linux — добавил слова «как Gecko», чтобы они также получили современные страницы, разработанные для Gecko. WebKit был основан на KHTML — когда он разрабатывался, они добавили слово WebKit и сохранили оригинальную строку «KHTML, как Gecko» в целях совместимости. Таким образом, разработчики браузеров со временем добавляли слова в свои пользовательские агенты.

Веб-серверам на самом деле все равно, какая именно строка пользовательского агента — они просто проверяют, содержит ли она определенное слово.

Пользы

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

  • Обслуживание разных веб-страниц в разных браузерах. Это может быть использовано во благо — например, для обслуживания более простых веб-страниц для старых браузеров — или для зла — например, для отображения сообщения «Эта веб-страница должна просматриваться в Internet Explorer».
  • Отображение разного контента для разных операционных систем — например, путем отображения уменьшенной страницы на мобильных устройствах.
  • Сбор статистики, показывающей браузеры и операционные системы, используемые их пользователями. Если вы когда-либо видите статистику доли рынка браузеров, это то, как они получены.

Боты для веб-сканирования также используют пользовательские агенты. Например, веб-сканер Google идентифицирует себя как:

Googlebot / 2.1 (+ http: //www.google.com/bot.html)

Веб-серверы могут предоставлять ботам особый режим — например, позволяя им проходить обязательные экраны регистрации. (Да, это означает, что иногда вы можете обойти экраны регистрации, установив в своем пользовательском агенте Googlebot.)

Веб-серверы также могут отдавать приказы определенным ботам (или всем ботам), используя файл robots.txt. Например, веб-сервер может указать конкретному боту, что он должен уйти, или сказать другому боту, чтобы он индексировал только определенные области веб-сайта. В файле robots.txt боты идентифицируются по строкам пользовательских агентов.

image


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

Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone