User agent

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

В обчислювальній техніці, User Agent — це програмний агент, який діє від імені користувача. Наприклад, пристрій, що зчитує листи електронної пошти є поштовим клієнтом. Термін зазвичай використовується для додатків, які здійснюють доступ до веб-сайтів, таким як браузери, пошукові роботи, мобільні телефони та інші пристрої.

У багатьох випадках User Agent виступає як клієнт у комунікаційному протоколі, який використовується у зв'язках в клієнт-сервері розподіленої комп'ютерної системи. Зокрема, Hypertext Transfer Protocol (HTTP) ідентифікує клієнтське програмне забезпечення, формуючи запит, за допомогою заголовка «User-Agent», навіть якщо клієнт не керується користувачем.

Ідентифікація[ред.ред. код]

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

Використання в HTTP[ред.ред. код]

У HTTP, рядок User-Agent часто використовується для узгодження вмісту (механізм автоматичного визначення необхідного ресурсу при наявності декількох різнотипних версій документа), де вихідний сервер вибирає відповідний контент або робочі параметри для отримання відповіді. Наприклад, рядок User-Agent може використовуватися веб-сервером, щоб вибрати варіанти, які базуються на відомих можливостях конкретної версії клієнтського програмного забезпечення.

Рядок User-agent також використовується веб-майстрами для запобігання індексування «пошуковими павуками» деяких сторінок сайту, наприклад коли індексування певних сторінок не має сенсу або конкретний «павук» використовує занадто багато трафіку. Веб-майстер може використовувати спеціальний файл robots.txt для рекомендацій «павука» або просто налаштувати веб-сайт не віддавати «павуку» ці сторінки.

Інформація в рядку «User-Agent» вносить свій вклад в інформацію, яку клієнт посилає на сервер, так як рядок може мати відчутні відмінності від одного користувача до іншого.

Формат для неавтоматизованих веб-браузерів[ред.ред. код]

Формат рядка User-Agent в даний час визначається розділом 5.5.3 по HTTP / 1.1 Семантика і зміст. Цей формат рядка являє собою список лексем продукції (ключові слова) з додатковими коментарями. Наприклад, якщо продукт компанії називався WikiBrowser, їх рядок User-Agent може бути WikiBrowser/1,0 Gecko/1,0. Першим в списку ставиться «важливіший» компонент продукту.

Частини цього рядка полягають в наступному:

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

Під час першої війни браузерів, багато веб-серверів були налаштовані тільки відправляти веб-сторінки, які вимагають додаткових функцій, в тому числі кадрів для клієнтів, які були ідентифіковані як деякі версії Mozilla. Інші браузери вважалися більш старішими продуктами, такі як Mosaic, Cello або Samba.

З цієї причини, більшість веб-браузерів використовують 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, like Gecko): Safari WebKit заснований на рушії KHTML, Gecko — кодове ім'я рушія останніх версій Mozilla Firefox.
  • Mobile/7B405: Це використовується браузером для вказівки конкретних поліпшень, які доступні безпосередньо в браузері. Прикладом цього є Microsoft Live Meeting, який реєструє його розширення, так що Live Meeting служба знає, якщо програмне забезпечення вже встановлено, що означає, що він може забезпечити упорядкований досвід приєднання зустрічей.

Перед перенесенням до кодової бази Chromium, Opera був найбільш широко використовуваним веб-браузером, який не мав рядок User-Agent «Mozilla» (замість «Opera»). З 15 липня 2013 року, рядок User-Agent Opera починається з «Mozilla / 5.0» і, щоб уникнути зіткнення правил старого сервера, більше не включає в себе слово «Opera».

Формат для автоматизованих агентів (ботів)[ред.ред. код]

Автоматизовані інструменти веб-сканування можуть використовувати спрощену форму, де важливе поле є контактною інформацією в разі виникнення проблем. Умовно слово «бот», яке входить в ім'я агента. Наприклад:

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

Автоматизовані агенти повинні слідувати правилам в спеціальному файлі з ім'ям «robots.txt».

Підробка User Agent[ред.ред. код]

Популярність різних продуктів веб-браузерів варіювалася протягом всієї історії Web, і це вплинуло на дизайн веб-сайтів, таким чином, що веб-сайти іноді призначені добре працювати тільки з певними браузерами, а не за єдиними стандартами Консорціуму Всесвітньої павутини (W3C) або Task Force Internet Engineering (IETF). Веб-сайти часто включають в себе код для виявлення версії браузера, щоб налаштувати дизайн сторінки, що відправляється у відповідності з отриманим рядком користувальницького агента. Це може означати, що менш популярні браузери не надсилають вміст (незважаючи на те, що вони могли б бути в змозі впоратися з нею правильно) або, в крайньому випадку, відмовитися від всього контенту. Таким чином, різні браузери мають особливість «приховувати» або «підроблювати» їх ідентифікацію. Наприклад, Android браузер ідентифікує себе як Safari з метою надання допомоги сумісності.

Інші клієнтські програми HTTP, як менеджери завантажень і оффлайн-браузерів, часто мають можливість змінити рядок агента користувача.

Spam bots і Web scrapers часто використовують підроблені користувальницькі агенти.

Одним з результатів підробки значення User-Agent є переоцінка популярності відповідного (зазвичай і без того популярного) браузера в статистиці і недооцінка популярності інших браузерів і, як наслідок, відсутність у розробників вищеописаних сайтів стимулу до виправлення проблем сумісності. Підробка значення User-Agent також може привести до загрози безпеки.

Шифрування «U» / «I» / «N»[ред.ред. код]

Netscape, Mozilla, Opera і деякі інші використовують одну з цих букв для вказівки підтримуваного рівня шифрування. Так як уряд США раніше не дозволяв експорт систем шифрування з ключем понад 40-біт, випускалися різні версії з різним рівнем шифрування. «U» означало «USA» (США) (для версій з ключем шифрування в 128-біт), «I» означало «International» (міжнародна) (браузер мав можливість шифрувати з ключем в 40-біт і міг використовуватися в будь-якій точці світу), «N» означало «None» (без шифрування). Спочатку версії з літерою «U» було дозволено завантажувати тільки жителям США, але з тих пір, як уряд США послабило свою політику, експорт систем шифрування високого рівня тепер дозволено в більшість країн. Тепер браузери поширюються тільки у версії з літерою «U» з підтримкою шифрування з ключем до 256-біт, так як необхідність в міжнародній версії відпала.

Див. також[ред.ред. код]

Примітки[ред.ред. код]