浏览器 User-Agent 格式分解
# 其他
简介
User Agent
中文名为用户代理
,简称UA
,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
作用
网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正常显示,但通过伪装 UA 可以绕过检测。
格式分解
为什么要分解格式请看这篇文章: 为什么浏览器User-agent总是有Mozilla字样?
根据 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. 第5.5.3章和 Hypertext Transfer Protocol -- HTTP/1.1 第14.43章,用户代理的格式如下:
User-Agent = product *( RWS ( product / comment ) )
例如你的产品叫做WikiBrowser,你的用户代理字符串就可能是WikiBrowser/1.0 Gecko/1.0。“最重要的”产品组件被最先列出。这个字符串的部分如下所示:
字串 | 说明 |
---|---|
WikiBrowser/1.0 | 产品名称和版本 |
Gecko/1.0 | 排版引擎和版本。 |
但不幸的是,在浏览器大战期间,很多网络服务器的配置只给被识别为某些版本的Mozilla的客户端发送需要高级功能的网页。
因此,为获取更好的网页,绝大多数网页浏览器使用的User-Agent值如下:
Mozilla/[version] ([system and browser information]) [platform] ([platform details]) [extensions]
例如,iPad上的Safari使用的就是下述:
Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405
这个字符串的组成如下:
字串 | 说明 |
---|---|
Mozilla/5.0 | Mozilla/5.0 是一个通用标记符号,用来表示与 Mozilla 兼容,这几乎是现代浏览器的标配。[4] |
(iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) | 浏览器所运行的系统的详细资讯 |
AppleWebKit/531.21.10 | 浏览器所使用的平台 |
(KHTML, like Gecko) | 浏览器平台的细节 |
Mobile/7B405 | 被浏览器用于指示特定的直接由浏览器提供或者通过第三方提供的可用的增强功能。这方面的一个实例是Microsoft Live Meeting,它注册了一个扩展以使Live Meeting服务知道该软件是否已经安装上,这意味着它可以为加入会议提供一个简化的体验。 |