检测设备或网络浏览器的唯一方法是用户代理字符串,每个网络浏览器都必须根据 HTTP 1.1 协议提供用户代理。用户代理字符串可以包含多个产品令牌。按照惯例,产品令牌是按照它们对识别应用程序的重要性的顺序列出的。
对于基于 Mozilla 的浏览器,用户代理字符串应遵循以下格式:
MozillaProductToken (MozillaComment) GeckoProductToken *
(VendorProductToken|VendorComment)
嵌入 Gecko 布局引擎的应用程序应具有遵循以下格式的用户代理字符串:
ApplicationProductToken (ApplicationComment) GeckoProductToken *
(VendorProductToken|VendorComment)
地点:
ProductToken : Mozilla/ MozillaVersion
Version : Major . Minor
Comment : ( Platform; Security; OS-or-CPU;
Localization information;
GeckoVersion)*[; Optional Other Comments] )
Platform : Windows, Linux, Mac etc.
Security : N for no security;
U for strong security;
I for weak security
OS-or-CPU : Windows Version/MacOS
GeckoVersion : String starting with "rv:" followed
by the Gecko version
GeckoProductToken: Gecko/GeckoDate
GeckoDate : Date in the format YYYYMMDD
例子
Mozilla 发布
Mozilla/5.001 (windows; U; NT4.0; en-US; rv:1.0) Gecko/25250101
基于与上述浏览器相同的代码库的品牌发布
Mozilla/5.001 (Macintosh; N; PPC; ja; rv:1.0) Gecko/25250101
MegaCorpBrowser/1.0 (MegaCorp, Inc.)
重新命名的版本
Mozilla/9.876 (X11; U; Linux 2.2.12-20 i686, en; rv:2.0) Gecko/
25250101 Netscape/5.432b1 (C-MindSpring)
基于 Gecko 的浏览器
TinyBrowser/2.0 (TinyBrowser Comment; rv:1.9.1a2pre) Gecko/20201231
歌剧
用户字符串规范:
Opera/Version (OS-or-CPU; Encryption; Language)
铬
他们使用 WebKit 作为其渲染引擎,但使用不同的 JavaScript 引擎。对于 Chrome 的初始 beta 版本 0.2,用户代理字符串包含来自 WebKit 的所有信息以及 Chrome 版本的额外部分。格式如下:
Mozilla/5.0 (Platform; Encryption; OS-or-CPU; Language)
AppleWebKit/AppleWebKitVersion (KHTML, like Gecko) Chrome/
ChromeVersion Safari/SafariVersion
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML,
like Gecko) Chrome/0.2.149.29 Safari/525.13
征服者
Konqueror 是与 KDE Linux 桌面环境捆绑在一起的浏览器,它基于 KHTML 开源渲染引擎。尽管仅在 Linux 上可用,但 Konqueror 拥有活跃的用户群。为获得最佳兼容性,Konqueror 选择在 IE 之后格式化其用户代理字符串,如下所示:
Mozilla/5.0 (compatible; Konqueror/3.5; SunOS) KHTML/3.5.0 (like Gecko)
WebKit
2003 年,Apple 宣布将发布自己的网络浏览器,称为 Safari。称为 WebKit 的 Safari 渲染引擎最初是基于 Linux 的 Konqueror Web 浏览器中使用的 KHTML 渲染引擎的一个分支。但是,您如何确保浏览器不会被热门网站拒之门外?答案是,将足够的信息放入用户代理字符串中,以使网站相信该浏览器与另一个流行的浏览器兼容。这导致了具有以下格式的用户代理字符串:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/
124 (KHTML, like Gecko) Safari/125.1
手机和平板电脑指标
UA 字符串的平台部分指示 Firefox 是在手机大小的设备还是平板设备上运行。当 Firefox 在具有手机外形的设备上运行时,就会有 Mobile; UA 字符串的平台部分中的令牌。例如:
Mozilla/5.0 (Android; Mobile; rv:13.0) Gecko/13.0 Firefox/13.0
Mozilla/5.0 (Android; Tablet; rv:13.0) Gecko/13.0 Firefox/13.0
但是,如果您使用 UA 嗅探将内容定位到设备外形规格,请在手机外形规格中查找 Mobi(包括使用“Mobi”的 Opera Mobile),并且不要假设“Android”之间有任何关联和设备外形尺寸。
安卓
Phone : Mozilla/5.0 (Android; Mobile; rv:13.0) Gecko/13.0 Firefox/13.0
Tablet : Mozilla/5.0 (Android; Tablet; rv:13.0) Gecko/13.0 Firefox/13.0
火狐操作系统
Phone : Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0