Какой стандартный формат для строки User-Agent браузера? - PullRequest
53 голосов
/ 08 апреля 2010

Есть ли RFC, официальный стандарт или шаблон для создания строки User Agent? Строка user-agent в iphone кажется странной ...

Mozilla / 5.0 (iPhone; U; CPU iPhone OS 3_1_2, как Mac OS X ; en-us) AppleWebKit / 528.18 ( KHTML, как Gecko ) Версия / 4.0 Mobile / 7D11 Safari / 528,16

Ответы [ 3 ]

67 голосов
/ 08 апреля 2010

Заголовок User-Agent является частью RFC7231, которая является улучшенной версией 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 ")">
10 голосов
/ 08 апреля 2010

Это указано в RFC 1945 в разделе «Заголовки запроса». Однако это не очень стандартизированный формат, и пользовательские агенты обычно помещают туда все, что хотят.

3 голосов
/ 08 апреля 2010

Да, смотрите: веб-сайт Mozilla , но, как уже упоминалось ранее. По сути, вы можете положить туда все, что захотите. Для статистических / аналитических целей наиболее важным является то, что каждый браузер / операционная система должны иметь это стандартизированное для себя.

...