当你浏览的网站想要知道你用的什么浏览器,它们一般会检查你浏览器的“user agent”(简称UA)。从Chrome 11开始google将会改动UA里面的一些内容,这可能会影响网站的兼容性。以下是Chrome 10的UA字串:
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16 Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16 下面是Chrome 11在相同平台下的UA字串: Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.16 Safari/534.24 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.16 Safari/534.24 可以看出google进行了4项改动,两处是专门为Windows下的Chrome实施的: 去掉Windows版中前面的“windows”平台身份识别,因为除了这个串之外后面还有一个操作系统版本识别字串(Windows NT 6.0),前者的存在没有实际意义,这样改了之后更加有利于IE浏览器的兼容性,因为IE的UA中就没有前面的字串。 去掉SSL加密强度令牌字串“U”。 将64bit版本Windows的识别字串加到操作系统版本后面,比如以32bit模式运行在64bit Windows 中的 Chrome 会在 user agent 的操作系统版本后面添加 “WOW64”,表示 Windows 32-bit On Windows 64-bit。同时Chrome的源代码中还加入了为原生64bit系统准备的字串,包括适用于x64处理器的“Win64; x64”,适用于安腾处理器的“Win64; IA64”,不过目前这些原生64bit版本的 Chrome 还没有发布,具体什么时间发布也还不清楚。 删除浏览器语言识别字串,因为网站如果想要了解用户使用的浏览器语言的话,完全可以使用 HTTP Accept-Language 头部来取代,而且可以支持多语言。而且这个也不准确,比如给 Chrome 团队发送Bug报告的时候,不管用户使用的什么语言都会发送一个“en-US”字串 很多人可能会问,为什么Google要在这时候修改Chrome的 user agent?对于这个问题Google也给出了解释,是因为Mozilla最近在 Firefox 4.0中也像这样修改了UA,所以让Chrome保持和Firefox同步而已。 |