浏览器里 User Agent 里的各个字段分别是什么意思呢

以chrome的为例

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.65 Safari/534.24

有些可以理解,有些无法理解。比如

  1. 为啥有Mozilla/5.0
  2. 为啥有like Gecko
  3. 为什么居然还有Safari/534.24,是要伪装吗

这里面一定有些历史原因,谁可以解释下

阅读 19k
2 个回答

参考 http://en.wikipedia.org/wiki/User_age...http://is.gd/I7vsYq

RFC1945要求User Agent包含产品名称和版本,注释似乎是可选的。

1. 很多浏览器的UA以Mozilla/5.0开头,这在之前用来说明和Mozilla渲染引擎的兼容性(我们兼容Mozilla5.0哦~你只要按照这个来做就行了哦亲~~)
2. like Gecko是平台说明,Gecko是Firefox和很多浏览器用的排版引擎。
3. Chrome的渲染引擎是WebKit,和Safari浏览器的差不多。所以似乎就是,网站不能识别Chrome的话,没问题,你按照Safari来做也没事。

这里有介绍:http://www.nczonline.net/blog/2010/01...
简单来说,

  • 首先HTTP规范要求浏览器应该发送User Agent;
  • 其次Netcape公司的浏览器Netscape Navigator 2就开始采用“Mozilla/Version [Language] (Platform; Encryption)”这种形式的字符串;
  • 当微软进入浏览器市场的时候,Netscape的浏览器占据了绝对的市场份额,而当时的服务器又会专门去检测这个浏览器,所以微软为了不让自家浏览器打不开网页,就模仿了Netscape浏览器的User Agent
  • 苹果发布Safari(渲染引擎是Webkit)时遇到了同样的问题,为了兼容就采取了和微软一样的策略
  • Chrome的渲染引擎同样是Webkit,发布时采用了跟Webkit一样的User Agent
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题