Заголовок User-Agent

У комп'ютерних науках, заголовок User-Agent це заголовок HTTP, призначений для ідентифікації агента користувача, який виконав HTTP-запит. У той час як послідовність символів User-Agent є назвою самого заголовка, значення заголовку, яке використовується агентом користувача щоб ідентифікувати самого себе, у просторіччі відоме як рядок агента користувача. Агент користувача, який використовується оператором комп’ютера для доступу до Інтернету, має вбудовані у правила його поведінки знання про те, як узгоджувати свою частину транзакції типу «запит-відповідь»; отже, агент користувача виконує роль клієнта в архітектурі клієнт-сервер. Часто вважається корисним в мережах можливість ідентифікувати та розрізняти програмне забезпечення, що забезпечує мережевий сеанс. Для цього, заголовок User-Agent існує для ідентифікації клієнтського програмного забезпечення відповідаючим сервером.

Використання в запитах клієнтів

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

У протоколі HTTP "рядок агента користувача" часто використовується для узгодження вмісту, коли сервер вибирає найбільш підходящий вміст або параметри для відповіді. Наприклад, рядок агента користувача може використовуватися веб-сервером для вибору варіантів на основі відомих можливостей конкретної версії клієнтського програмного забезпечення. Концепція адаптації контенту вбудована в стандарт HTTP в RFC 1945 "для адаптації відповідей, щоб уникнути окремих обмежень агентів користувача".

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

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

Формат для веббраузерів, якими керує людина

Формат рядка агента користувача наразі визначається розділом 10.1.5 семантики HTTP. Формат рядка агента користувача в HTTP — це список токенів продукту (ключових слів) з необов'язковими коментарями. Наприклад, якщо продукт користувача називатиметься WikiBrowser, рядок його агента користувача може бути WikiBrowser/1.0 Gecko/1.0. «Найважливіший» компонент продукту вказаний першим.

Частини цього рядка такі:

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

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

З цієї причини більшість веббраузерів використовують значення рядка користувацького агента наступним чином:

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

Наприклад, Safari на iPad використовував наступне:

Mozilla/5.0 (iPad; CPU OS 16_7_10 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Version/16.7.10 Safari/605.1.15

Компоненти цього рядка такі:

  • Mozilla/5.0 : Раніше використовувалося для позначення сумісності з рушієм рендерингу Mozilla.
  • (iPad; CPU OS 16_7_10 like Mac OS X): Відомості про систему, на якій працює браузер.
  • AppleWebKit/605.1.15: Платформа, яку використовує браузер.
  • (KHTML, like Gecko): Відомості про платформу браузера.
  • Mobile/15E148: Цей код використовується браузером для позначення певних покращень, доступних безпосередньо в браузері або через сторонні розробники.
  • Version/16.7.10: Версія операційної системи.
  • Safari/605.1.15: Версія браузера

До переходу на кодову базу Chromium, Opera була найпоширенішим веб-браузером, чий рядок агента користувача не містив «Mozilla» (натомість він починався з «Opera»). З 15 липня 2013 року[6] рядок агента користувача Opera починається з «Mozilla/5.0» і, щоб уникнути конфліктів зі старими правилами серверів, більше не містить слова «Opera» (замість цього використовується рядок «OPR» для позначення версії Opera).

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

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

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

Очікується, що автоматизовані агенти дотримуватимуться правил у спеціальному файлі під назвою "robots.txt".

Примітки

  1. Fielding, Roy T.; Nottingham, Mark; Reschke, Julian (2022-06). HTTP Semantics. № RFC 9110. Процитовано 1 травня 2025.
  2. Schooler, Eve; Rosenberg, Jonathan; Schulzrinne, Henning; Johnston, Alan; Camarillo, Gonzalo; Peterson, Jon; Sparks, Robert; Handley, Mark J. (2002-07). SIP: Session Initiation Protocol. № RFC 3261. Процитовано 1 травня 2025.
  3. Murchison, Kenneth; Kohn, Dan; Lindsey, Charles (2009-11). Netnews Article Format. № RFC 5536. Процитовано 1 травня 2025.
  4. Eckersley, Peter (27 січня 2010). Browser Versions Carry 10.5 Bits of Identifying Information on Average. Electronic Frontier Foundation. Процитовано 25 серпня 2011.
  5. WebAIM: History of the browser user-agent string. webaim.org. Процитовано 1 травня 2025.
  6. Opera News. Opera News. 30 квітня 2025. Процитовано 1 травня 2025.
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya