Page protected with pending changes
Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

Использовать в HTTP [ править ]

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

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

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

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

Формат строки 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 . [6] Другие браузеры, такие как Mosaic , Cello или Samba , считались устаревшими , и им отправлялся простой HTML-документ.

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

Mozilla / [версия] ([информация о системе и браузере]) [платформа] ([сведения о платформе]) [расширения] . Например, в Safari на iPad использовалось следующее:

Mozilla / 5.0 (iPad; U; CPU OS 3_2_1, например Mac OS X; en-us) AppleWebKit / 531.21.10 (KHTML, например 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 г. [7] строка User-Agent Opera начинается с «Mozilla / 5.0» и, чтобы избежать столкновения с правилами устаревшего сервера, больше не включает слово «Opera» (вместо этого используется строка «OPR» для обозначения Opera версия).

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

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

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

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

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

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

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

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

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

Анализ пользовательского агента [ править ]

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

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

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

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

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

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

См. Также [ править ]

  • Стандарт исключения роботов
  • Поисковый робот
  • Универсальный файл ресурсов беспроводной связи (WURFL)
  • Профиль агента пользователя (UAProf)
  • Обнюхивание браузера
  • Движок веб-браузера

Ссылки [ править ]

  1. ^ «Определение пользовательского агента W3C» . www.w3.org. 16 июня 2011 . Проверено 20 октября 2018 .
  2. ^ a b RFC 3261, SIP: протокол инициации сеанса , IETF, The Internet Society (2002)
  3. ^ RFC 7231, Протокол передачи гипертекста (HTTP / 1.1): семантика и контент , IETF, The Internet Society (июнь 2014 г.)
  4. ^ Формат статьи Netnews . IETF . Ноябрь 2009. с. 3.2.13. DOI : 10,17487 / RFC5536 . RFC 5536 .
  5. ^ Питер Экерсли. « Версии браузеров в среднем содержат 10,5 бит идентифицирующей информации », Electronic Frontier Foundation , 27 января 2010 г. Дата обращения 25 августа 2011 г.
  6. ^ История строки пользовательского агента браузера . WebAIM.
  7. ^ «Строки пользовательского агента Opera: Opera 15 и выше» . dev.opera.com. 15 июля 2013 . Проверено 5 мая 2014 .
  8. ^ "https://www.rankwatch.com/blog/handle-bot-herding-and-spider-wrangling-for-rankings/"
  9. ^ Бурштейн жалуется «... Я был отвергнут , пока я не вернусь с Netscape»
  10. ^ «Браузер Android сообщает о себе как Apple Safari» . Архивировано из оригинала 6 августа 2011 года . Проверено 9 августа 2011 года .
  11. ^ «Объяснение строки агента пользователя: браузер Android Webkit» . UserAgentString.com . Проверено 29 июля 2012 года . Mozilla / 5.0 (Linux; U; Android 2.2; en-sa; HTC_DesireHD_A9191 Build / FRF91) AppleWebKit / 533.1 (KHTML, как Gecko) Версия / 4.0 Mobile Safari / 533.1
  12. ^ Пембертон, Стивен. «Служба проверки разметки W3C» . W3C . Проверено 18 октября 2011 .
  13. ^ Clary, Bob (10 February 2003). "Browser Detection and Cross Browser Support". Mozilla Developer Center. Mozilla. Retrieved 2009-05-30.
  14. ^ Zawinski, Jamie (28 March 1998). "user-agent strings (obsolete)". mozilla.org. Retrieved 2010-01-08.
  15. ^ "Chrome Phasing out Support for User Agent". InfoQ. Retrieved 2020-03-25.
  16. ^ Cimpanu, Catalin. "Google to phase out user-agent strings in Chrome". ZDNet. Retrieved 2020-03-25.