Ответ 1
Заголовок User-Agent
является частью RFC2616
, который является улучшенной версией RFC1945
, где указано:
Поле заголовка запроса-пользователя User-Agent содержит информацию о пользовательский агент, отправляющий запрос. Это делается для статистических целей, отслеживание нарушений протокола и автоматическое распознавание пользователя агентов для адаптации ответов, чтобы избежать конкретного пользователя ограничений агента. Пользовательские агенты ДОЛЖНЫ включать это поле с Запросы. Поле может содержать несколько токенов продукта (раздел 3.8) и комментарии, идентифицирующие агента и любые субпродукты, которые образуют значительная часть пользовательского агента. По соглашению, токены продукта перечислены в порядке их значимости для идентификации приложение.
User-Agent = "User-Agent" ":" 1*( product | comment )
Где product
определяется как:
product = token ["/" product-version]
product-version = token
token = 1*<any CHAR except CTLs or separators>
И comment
как:
comment = "(" *( ctext | quoted-pair | comment ) ")"
ctext = <any TEXT excluding "(" and ")">