免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2325 | 回复: 0

理解用户代理字符串(User-Agent Strings) [复制链接]

论坛徽章:
0
发表于 2011-12-21 08:44 |显示全部楼层

原文地址: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在用户代理字符串中默认放置的标识有三个。

  1. 版本标识(Version tokens
  2. 平台标识(Platform tokens
  3. 特性标识(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(关于客户端兼容性)

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP