2010-04-08 29 views
46

是否有用于创建用户代理字符串的RFC,官方标准或模板? iPhone的用户代理字符串似乎很奇怪...浏览器的用户代理字符串的标准格式是什么?

的Mozilla/5.0(iPhone; U; CPU iPhone OS 3_1_2,例如Mac OS X; EN-US)为AppleWebKit/528.18(KHTML 像壁虎)版本/ 4.0移动/ 7D11的Safari/528.16

+1

的iPhone认真把'的Mozilla/5.0'在它开始的用户代理? – Tarka 2010-04-08 15:59:27

+7

@Slokun为何惊喜? IE用户代理以“Mozilla/4.0”开头。请记住,Mozilla是最早制作的浏览器之一,而其他所有浏览器都包含其不同程度的部分基础。 – 2010-04-08 16:09:01

+0

@Paulo Santos我想我只是没有看足够的用户代理字符串。 – Tarka 2010-04-08 18:45:53

回答

60

User-Agent头是RFC2616,这是RFC1945,在那里它指出的改进版本的一部分:

的用户代理请求 - 报头字段包含有关 用户代理发起请求信息。这是为了统计目的, 协议违反的跟踪以及为了定制响应以避免特定用户代理限制而对代理的用户 进行自动识别。用户代理应该包含 请求的这个字段。该字段可以包含多个产品标记(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 ")"> 
+0

谢谢,这正是我正在寻找的。似乎没有评论栏的标准格式。 – 2010-04-08 17:36:53

+0

什么是“双引号”? – QED 2013-09-15 00:40:55

+0

quoted-pair =“\”CHAR – 2013-10-30 23:14:21

9

这在RFC 1945在请求头部分指定。然而,这不是一个非常标准化的格式,而且用户代理倾向于在其中放置任何他们想要的内容。

+0

Thx!您的答案与Paulo的答案相结合,可以做出完整的答案 – 2010-04-08 17:38:44

+0

不客气!看起来Paulo的实际上是更完整和最新的,所以随时将他标为已被接受。 – tloflin 2010-04-08 17:49:35

1

是的,请参阅:mozilla website,但正如之前所述。基本上你可以放任何你想要的东西。出于统计/分析的目的,最重要的是,每个浏览器/操作系统都应该有自己的标准化。

相关问题