浏览器的User-Agent字符串的标准格式是什么?

Joh*_*man 55 user-agent

是否有用于创建用户代理字符串的RFC,官方标准或模板?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

Pau*_*tos 70

User-Agent标题是该标题的一部分RFC7231,它是该标题的改进版本RFC1945,其中指出:

User-Agent请求标头字段包含有关发起请求的用户代理的信息.这是出于统计目的,跟踪协议违规以及自动识别用户代理以便定制响应以避免特定的用户代理限制.用户代理应该包含带有请求的字段.该字段可以包含多个产品令牌(第3.8节)和标识代理的注释以及构成用户代理重要部分的任何子产品.按照惯例,产品令牌按其对于识别应用程序的重要性的顺序列出.

   User-Agent     = "User-Agent" ":" 1*( product | comment )
Run Code Online (Sandbox Code Playgroud)

在哪里product定义为:

   product         = token ["/" product-version]
   product-version = token
   token           = 1*<any CHAR except CTLs or separators>
Run Code Online (Sandbox Code Playgroud)

comment作为:

   comment        = "(" *( ctext | quoted-pair | comment ) ")"
   ctext          = <any TEXT excluding "(" and ")">
Run Code Online (Sandbox Code Playgroud)

  • 对于不熟悉EBNF的读者来说,这样的一些例子是理想的.(= (20认同)
  • 引用的RFC现在已过时.http://tools.ietf.org/html/rfc7231可以避免它. (5认同)
  • 谢谢,这正是我一直在寻找的。评论字段似乎没有标准格式。 (3认同)
  • 有趣的是,RFC 7231 特别指出“使用 [ing] 其他实现的产品令牌以声明与它们的兼容性”是一个坏主意。 (2认同)

tlo*_*lin 10

这在RFC 1945的Request Headers部分中指定.然而,它不是一种非常标准化的格式,用户代理倾向于在那里放置任何他们想要的东西.