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

редактировать
Это последняя принятая редакция, обзор на 14 октября 2021 года.

В вычислении, агент пользователя является любое программное обеспечение, действующее от имени пользователя, который «извлекает, оказывает и облегчает взаимодействие конечных пользователей с веб - контента». Таким образом, пользовательский агент - это особый вид программного агента.

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

СОДЕРЖАНИЕ

  • 1 Идентификация агента пользователя
  • 2 Использование в HTTP
    • 2.1 Формат для веб-браузеров, управляемых человеком
    • 2.2 Формат для автоматических агентов (ботов)
    • 2.3 Подмена пользовательского агента
    • 2.4 Обнюхивание пользовательского агента
    • 2.5 Обозначения стойкости шифрования
    • 2.6 Прекращение поддержки заголовка User-Agent
  • 3 См. Также
  • 4 ссылки

Идентификация пользовательского агента

Когда программный агент работает по сетевому протоколу, он часто идентифицирует себя, свой тип приложения, операционную систему, поставщика программного обеспечения или версию программного обеспечения, отправляя характеристическую строку идентификации своему рабочему партнеру. В протоколах HTTP, SIP и NNTP этот идентификатор передается в поле заголовка User-Agent. Боты, такие как поисковые роботы, часто также включают URL-адрес и / или адрес электронной почты, чтобы веб-мастер мог связаться с оператором бота.

Использование в HTTP

В HTTP строка User-Agent часто используется для согласования содержимого, когда исходный сервер выбирает подходящий контент или рабочие параметры для ответа. Например, строка User-Agent может использоваться веб-сервером для выбора вариантов на основе известных возможностей конкретной версии клиентского программного обеспечения. Концепция адаптации содержимого встроена в стандарт HTTP в RFC 1945 «с целью адаптации ответов во избежание определенных ограничений пользовательского агента».

Строка User-Agent - это один из критериев, по которому поисковые роботы могут быть исключены из доступа к определенным частям веб-сайта с использованием Стандарта исключения роботов ( файл robots.txt).

Как и во многих других заголовках HTTP-запросов, информация в строке «User-Agent» вносит свой вклад в информацию, которую клиент отправляет на сервер, поскольку строка может значительно отличаться от пользователя к пользователю.

Формат для веб-браузеров, управляемых человеком

Формат строки User-Agent в настоящее время определяется разделом 5.5.3 Семантики и содержимого HTTP / 1.1. Формат строки User-Agent в HTTP - это список токенов продукта (ключевых слов) с дополнительными комментариями. Например, если продукт пользователя называется WikiBrowser, строка его пользовательского агента может быть WikiBrowser / 1.0 Gecko / 1.0. Первым указывается «самый важный» компонент продукта.

Части этой строки следующие:

  • название и версия продукта ( WikiBrowser / 1.0)
  • верстка и версия ( Gecko / 1.0)

Во время первой войны браузеров многие веб-серверы были настроены для отправки веб-страниц, требующих расширенных функций, включая фреймы, клиентам, которые были идентифицированы только как некоторая версия Mozilla. Другие браузеры, такие как Mosaic, Cello или Samba, считались устаревшими, и им нужно было отправлять простой HTML-документ.

По этой причине большинство веб-браузеров используют строковое значение User-Agent следующим образом:

Mozilla / [ версия ] ([информация о системе и браузере ]) [ платформа ] ([ сведения о платформе ]) [ расширения ]

Например, в Safari на iPad использовалось следующее:

Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405

Компоненты этой строки следующие:

  • Mozilla / 5.0: ранее использовалось для обозначения совместимости с механизмом рендеринга Mozilla.
  • (iPad; U; CPU OS 3_2_1, например Mac OS X; en-us): сведения о системе, в которой работает браузер.
  • AppleWebKit / 531.21.10: Платформа, которую использует браузер.
  • (KHTML, например Gecko): сведения о платформе браузера.
  • Мобильный / 7B405: используется браузером для обозначения конкретных улучшений, доступных непосредственно в браузере или через третьих лиц. Примером этого является Microsoft Live Meeting, которая регистрирует расширение, чтобы служба Live Meeting знала, установлено ли уже программное обеспечение, а это означает, что она может упростить процесс присоединения к собраниям.

До перехода на кодовую базу Chromium Opera была наиболее широко используемым веб-браузером, в котором в строке User-Agent не было строки «Mozilla» (вместо этого она начиналась с «Opera»). С 15 июля 2013 г. строка User-Agent Opera начинается с «Mozilla / 5.0» и, чтобы избежать столкновения с устаревшими правилами сервера, больше не включает слово «Opera» (вместо этого используется строка «OPR» для обозначения версии Opera).

Формат для автоматических агентов (ботов)

Инструменты автоматического сканирования Интернета могут использовать упрощенную форму, где важным полем является контактная информация в случае возникновения проблем. По соглашению слово «бот» включается в имя агента. Например:

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

Ожидается, что автоматические агенты будут следовать правилам в специальном файле под названием « robots.txt ».

Подмена пользовательского агента

Популярность различных продуктов веб-обозревателя менялась на протяжении всей истории Интернета, и это повлияло на дизайн веб-сайтов таким образом, что веб-сайты иногда проектируются так, чтобы они хорошо работали только с определенными браузерами, а не в соответствии с едиными стандартами Всемирной паутины. Консорциум (W3C) или Инженерная группа Интернета (IETF). Веб-сайты часто включают код для определения версии браузера, чтобы настроить дизайн страницы, отправляемой в соответствии с полученной строкой пользовательского агента. Это может означать, что менее популярные браузеры не отправляют сложный контент (даже если они могут правильно с ним справиться) или, в крайних случаях, отказываются от всего контента. Таким образом, различные браузеры имеют возможность скрывать или подделывать свою идентификацию, чтобы принудительно использовать определенный контент на стороне сервера. Например, браузер Android идентифицирует себя как Safari (помимо прочего) для обеспечения совместимости.

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

Спам-боты и веб-парсеры часто используют поддельные пользовательские агенты.

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

Обнюхивание пользовательского агента

Основная статья: Обнюхивание браузера

Обнюхивание пользовательского агента - это практика, когда веб-сайты показывают различный или скорректированный контент при просмотре с помощью определенных пользовательских агентов. Примером этого является функция Outlook Web Access в Microsoft Exchange Server 2003. При просмотре в Internet Explorer 6 или новее отображается больше функциональных возможностей по сравнению с той же страницей в любых других браузерах. Обнюхивание пользовательского агента считается плохой практикой, поскольку оно поощряет дизайн, специфичный для браузера, и наказывает новые браузеры с неопознанными идентификаторами пользовательского агента. Вместо этого W3C рекомендует создавать стандартную разметку HTML, позволяющую корректно отображать данные в максимально возможном количестве браузеров и тестировать определенные функции браузера, а не определенные версии или бренды браузеров.

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

Обозначения стойкости шифрования

Веб-браузеры, созданные в США, такие как Netscape Navigator и Internet Explorer, ранее использовали буквы U, I и N для указания силы шифрования в строке пользовательского агента. До 1996 года, когда правительство США разрешило экспортировать шифрование с ключами длиной более 40 бит, поставщики поставляли различные версии браузеров с разной степенью шифрования. «U» означает «США» (для версии со 128-битным шифрованием), «I» означает «международный» - браузер имеет 40-битное шифрование и может использоваться в любой точке мира, а «N» означает ( de facto) вместо "None" (без шифрования). После снятия экспортных ограничений большинство поставщиков поддержали 256-битное шифрование.

Прекращение поддержки заголовка User-Agent

В 2020 году Google объявил о прекращении поддержки заголовка User-Agent в своем браузере Google Chrome. Они заявили, что другие крупные поставщики веб-браузеров поддержали этот шаг, но не знают, когда другие поставщики последуют их примеру. Google заявил, что новая функция под названием Client Hints заменит функциональность строки User-Agent.

Смотрите также

использованная литература

Последняя правка сделана 2023-03-31 10:45:15
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте