Пользовательский агент - это «строка», то есть строка текста - идентификация браузера и операционной системы на веб-сервере. Это звучит просто, но пользовательские агенты со временем стали беспорядочными.
Основы
Когда ваш браузер подключается к веб-сайту, он включает поле 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
Теперь давайте посмотрим на пользовательский агент Internet Explorer 9, который:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Мы вернемся к этому через минуту. Во-первых, давайте рассмотрим также пользовательский агент Google Chrome:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5
Пользовательский агент String Mess
Мозаика была одним из первых браузеров. Его строка пользовательского агента была NCSA_Mosaic / 2.0. Позже появилась Mozilla (позже переименованная в Netscape), а ее пользовательским агентом была Mozilla / 1.0. Mozilla был более продвинутым браузером, чем Mosaic - в частности, он поддерживал фреймы. Веб-серверы проверили, чтобы пользовательский агент содержал слово Mozilla и отправлял страницы, содержащие фреймы, в браузеры Mozilla. Для других браузеров веб-серверы отправили старые страницы без фреймов.
В конце концов, появился Internet Explorer от Microsoft, и он также поддерживал фреймы. Однако IE не получал веб-страницы с фреймами, потому что веб-серверы просто отправляли их в браузеры Mozilla. Чтобы устранить эту проблему, Microsoft добавила слово Mozilla к своему пользовательскому агенту и добавила дополнительную информацию (слово «совместимо» и ссылку на IE.) Веб-серверы были рады увидеть слово Mozilla и отправили IE на современные веб-страницы. Другие браузеры, которые пришли позже, сделали то же самое.
Веб-серверам все равно, какая именно строка пользовательского агента - они просто проверяют, содержит ли оно определенное слово.
Пользы
Веб-серверы используют пользовательские агенты для различных целей, в том числе:
- Обслуживание различных веб-страниц в разных веб-браузерах. Это можно использовать для хорошего - например, для обслуживания более простых веб-страниц для старых браузеров - или зла - например, для отображения сообщения «Эта веб-страница должна быть просмотрена в Internet Explorer».
- Отображение различного контента для разных операционных систем - например, путем отображения на мобильных устройствах страницы с уменьшенным доступом.
- Сбор статистики, показывающей браузеры и операционные системы, используемые их пользователями. Если вы когда-либо видите статистику по рынку на рынке браузеров, вот как они приобретаются.
Веб-обходные боты также используют пользовательские агенты. Например, поисковый робот Google идентифицирует себя как:
Googlebot/2.1 (+https://www.google.com/bot.html)
Веб-серверы могут предоставлять боту специальную обработку - например, разрешая их через обязательные экраны регистрации. (Да, это означает, что вы иногда можете обойти регистрационные экраны, установив свой пользовательский агент в Googlebot.)
Веб-серверы также могут давать заказы определенным ботам (или всем ботам), используя файл robots.txt. Например, веб-сервер может сказать конкретному боту уйти или сообщить другому боту только индексировать определенные области веб-сайта. В файле robots.txt боты идентифицируются по их строкам пользовательского агента.
Все основные браузеры содержат способы установки пользовательских агентов, поэтому вы можете видеть, какие веб-серверы отправляют в разные браузеры. Например, установите настольный браузер в строку пользовательского агента мобильного браузера, и вы увидите мобильные версии веб-страниц на рабочем столе.