原文地址:http://msdn.microsoft.com/en-us/library/ms537503.aspx
翻译:Chinaunix::x9x9 (本译文不会随原文更新而更新,若有不当处请阅读原文)
这篇主题将描述用户代理(User-Agent)字符串,它被用来辨别浏览器版本以及向你所访问的网站的服务器提供某些系统信息的细节。该主题还将展示如何查看你的用户代理字符串、总结最新的Windows IE浏览器使用的标记,还有影响用户代理字符串的文档注册关键字。
该主题包含以下几部分:
l 简介
l 理解用户代理字符串
l 查看用户代理字符串
l IE浏览器的用户代理标识
l 用户代理的注册表键
l 相关主题
简介
当你浏览一个网页时,你的浏览器会向你所访问的网站的服务器发送用户代理字符串。该字符串会表明你使用的是哪种浏览器,它的版本号,还有你的系统的细节,比如是什么操作系统及它的版本。这样浏览器就会利用这些信息提供符合你的浏览器的特定内容。
理解用户代理字符串
当你请求一个网页,浏览器就会向你所访问的站点的服务器发送一些报头。每个报头都包含着的一些细节可以帮助服务器选择以何种最好的方式来向你呈现你所请求的信息。用户代理报头用来识别向服务器请求信息的应用程序。用户代理字符串包含一些被称作标识(tokens)的可选的细节信息,这些标识必须用圆括弧括起,且每种程序不尽相同。IE浏览器用这些标识来描述你的电脑系统的额外的细节。
下图展示的例子是IE浏览器所报告的一个用户代理字符串,其中高亮了标识部分。

因为历史原因,IE浏览器把自己识别为Mozilla 4.0浏览器。
这个例子中用户代理字符串包含三个标识:
1. 兼容标记(compatible)被大多数现代浏览器所使用,它表明IE和通用特征集兼容。
2. 版本标识(Version Token)识别浏览器且包含它的版本号。例子中的版本标识(MSIE 7.0)表示是Internet
Explorer 7。
3. 平台标识(Platform Token)识别你的操作系统且包含版本号。例子中的平台标识("Windows
NT 6.0")意思是Windows Vista。
在这个例子中IE浏览器就是用户代理,然而在互联网上的其它程序向服务器联络时也提供用户代理字符串。比如Windows RSS平台 在请求RSS数据时会提供如下的用户代理报头:
Windows-RSS-Platform/1.0
(MSIE 7.0; Windows NT 5.1)
和IE浏览器的用户代理字符串一样,该用户代理报头也提供了你系统的有关细节。
其它的标识因为一些原因也会出现在用户代理字符串中,这通常是它们识别了你的系统里安装的其它一些可选的特性。例如,在安装了SP2补丁的Windows XP的用户代理字符串中就会有一个”SV1”标识。这里还特别指出某些“非微软团体”为了他们自己的意图修改用户代理字符串。
提示:为了保护您的个人隐私,请您定期检视你的用户代理字符串来验证它的内容。
有关和Web服务器通讯要用到的其它报头的更多信息,请查看万维网协会(World Wide
Web Consortium)的RFC 2616的第十四节:头域定义(Header
Field Definitions)。
查看用户代理字符串
要查看你的浏览器的用户代理字符串,在地址栏中输入:
javascript:alert(navigator.userAgent)
这里请注意大小写。
回车后会出现如下图演示的一个对话框,显示你的用户代理字符串。

小技巧:如果你使用的是最新的Windows版本,在关闭该对话框前你可以按CTRL+C将用户代理字符串复制到剪切板。(译者:其实你可以运行javascript:document.write(navigator.userAgent) 然后直接复制)
IE浏览器的用户代理标识
本小节总结了最新的IE浏览器所使用的标识,IE在用户代理字符串中默认放置的标识有三个。
- 版本标识(Version
tokens)
- 平台标识(Platform
tokens)
- 特性标识(Feature
tokens)
通常来说版本标识以MSIE开头,后面跟着浏览器的版本号。许多测试版本会在版本号后面附加上字母“b”。下表列出的是最新的IE浏览器所使用的版本标识:
版本标识
|
描述
|
MSIE 8.0
|
Internet Explorer 8 (测试版)
|
MSIE 7.0
|
Internet Explorer 7
|
MSIE 7.0b
|
Internet Explorer 7 (仅Beta 1测试版)
|
MSIE 6.0
|
Microsoft Internet Explorer 6
|
MSIE 6.0b
|
Internet Explorer 6 (测试版)
|
MSIE 5.5
|
Internet Explorer 5.5
|
MSIE 5.01
|
Internet Explorer 5.01
|
MSIE 5.0
|
Internet Explorer 5
|
MSIE 5.0b1
|
Internet Explorer 5 (测试版)
|
MSIE 4.01
|
Internet Explorer 4.01
|
平台标识描述的是你的操作系统。下表列出的是IE浏览器对最新的几个Windows版本的平台标识:
平台标识
|
描述
|
Windows NT 6.0
|
Windows Vista
|
Windows NT 5.2
|
Windows Server 2003; Windows XP x64 Edition
|
Windows NT 5.1
|
Windows XP
|
Windows NT 5.01
|
Windows 2000, Service Pack 1 (SP1)
|
Windows NT 5.0
|
Windows 2000
|
Windows NT 4.0
|
Microsoft Windows NT 4.0
|
Windows 98; Win 9x 4.90
|
Windows Millennium Edition (Windows Me)
|
Windows 98
|
Windows 98
|
Windows 95
|
Windows 95
|
Windows CE
|
Windows CE
|
某些可选的组件同样可以修改用户代理字符串。下表展示的是常见的一些。要知道其它的一些应用程序也会修改用户代理字符串。因此给出一个综合的列表是不可能的。如果你在你的用户代理字符串中发现了其它的标识,你应该更细致的研究它们一下。
标识
|
描述
|
.NET CLR
|
.NET Framework common language run time, followed by
the version number.
|
SV1
|
Internet Explorer 6 with enhanced security features
(Windows XP SP2 and Windows Server 2003 only).
|
Tablet PC
|
Tablet services are installed; number indicates the
version number.
|
Win64; IA64
|
System has a 64-bit processor (Intel).
|
Win64; x64
|
System has a 64-bit processor (AMD).
|
WOW64
|
A 32-bit version of Internet Explorer is running on a
64-bit processor.
|
用户代理的注册表键
当你安装某些Windows组件,比如Microsoft .NET Framework 或是 Windows XP SP2时,标识就会被添加到用户代理字符串中。这是通过向以下的注册表键中添加标识实现的。
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Windows
CurrentVersion
Internet Settings
User Agent
Pre Platform
Token = Value
Post Platform
Token = Value
Pre-Platform 和Post-Platform键所包含的值是它分别出现在平台标识之前和之后的名称。例如,假如向Post-Platform键添加了一个字符串值,该名称就会出现在用户代理字符串的平台标识的后面。向这两个键中的任何一个键添加多重标识都会以不可预测的次序呈现。
你也可以通过向以下的注册表键中添加值来废除某些用户代理字符串的标识:
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Windows
CurrentVersion
Internet Settings
5.0
User Agent
(default) = "Mozilla/4.0"
Compatible = "compatible"
Platform = "Windows NT 5.1"
Version = "MSIE 6.0"
Pre Platform
Token = Value
Post Platform
Token = Value
User Agent键的default的值取代了用户代理字符串中所报告的应用程序名称和应用程序版本标识。注意,头7个字符用作应用程序的名称,其余的字符指定应用程序的版本标识。
Compatible, Platform, 及 Version的值取代用户代理字符串中相应的标识。
可以通过注册表编辑器在Pre-Platform
或 Post-Platform键下创建新的字符串值来向用户代理字符串中添加额外的标识。数值的名称应是完整的标识,数值的数据可以忽略。向Pre-Platform键添加的标识出现在最终的用户代理字符串中的平台标识之前,向Post-Platform键添加的标识出现在最终的用户代理字符串中的平台标识之后。向这两个键中的任何一个键添加多重标识都会以不可预测的次序显示。
注意:当浏览器打开后更改了这些键值,这些更改要等到所有浏览器窗口关闭后才会生效,包括那些负责运行WebBrowser Control的应用程序。要知道那些负责运行WebBrowser
Control的应用程序无须更改IE用户代理字符串就可以废除它。更多信息请查看PRB: WebBrowser
Control Clients Share Global Settings。
相关主题
l
About Client
Capabilities(关于客户端兼容性) |