»

Firefox的UA(user agent)字符串参考

    网络其他  
浏览器教育社交网络cookies伪静态ApacheSEO表格网站优化wordpressCDN网络安全

此文档描述了Firefox 4及以后版本的Firefox浏览器,以及基于Gecko 2.0及以后版本的应用所使用的UA字符串。对于Gecko 2.0之后产生的变化,可以参考Firefox 4中最终的UA字符串一文。

一般格式

Firefox的UA字符串可以被拆分为以下四个部分:

Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
  • Mozilla/5.0 是表明了该浏览器与Mozilla相兼容的通用字符串。这个字段几乎与现如今的所有浏览器都共通,几乎是现代浏览器的标配。
  • platform 描述了浏览器所运行的原生平台(例如:Windows,Mac,Linux或Android),以及其是否属于移动设备。Firefox OS电话只会简单地表示为"Mobile"; 因为其平台是web。请注意,platform可包含多个被"; "分隔的字段。更多信息和例子可以参考下面内容。
  • rv:geckoversion 显示了Gecko的版本号,(如"17.0")。在近期几个版本的浏览器中,geckoversionfirefoxversion一致。
  • Gecko/geckotrail 标明浏览器基于Gecko。表示该浏览器基于 Gecko 渲染引擎。在桌面端, geckotrail是固定字符串"20100101"。
  • Firefox/firefoxversion 标明浏览器是Firefox,并提供了版本号(如"17.0")。自从移动版Firefox 10开始,geckotrailfirefoxversion 保持一致。

(如果你必须检测浏览器引擎,而不是去做特征检测的话)推荐的检测浏览器基于Gecko的方法,是使用"Gecko"与"rv:"字符串。这是因为有一些浏览器的UA中也包含了"like Gecko"字段。

 

对于其他基于Gecko的产品,UA字符串会符合以下两个规则中的一个,除了下面的描述外,其它字段与上面描述的意义相同。

Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail appname/appversion
Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion appname/appversion
  • appname/appversion 标明了应用名与版本,举个例子,这个字段可以是"Camino/2.1.1"或"SeaMonkey/2.7.1"。
  • Firefox/firefoxversion 是一个可选的兼容字段,一些基于Gecko的浏览器选择加入,以使那些支持Firefox的网页进行最大的兼容。firefoxversion应与其提供的Gecko版本对应的Firefox版本相同。一些基于Gecko的浏览器可能未加入此此段,因此,在检测的时候,应当使用"Gecko"而非"Firefox"。这个字段是否展示,由"general.useragent.compatMode.firefox"中设定的布尔值控制。

 

标明移动设备与平板设备

UA字符串的platform部分,标明了Firefox是否运行在手机或平板尺寸的设备上。当Firefox运行在移动设备上时,UA中的这个字段将包含Mobile;。当Firefox运行于平板设备时,UA中的这个字段将包含Tablet;。例如:

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0
Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0

上述版本号并不对应,请避免基于版本号做此判断

 

推荐的判断设备尺寸的方法是使用CSS媒体查询(CSS Media Query)。但是,当你需要使用UA判断用户是否使用移动尺寸的设备,请查找"Mobi"(以兼容使用"Mobi"的Opera移动浏览器)。不要假定"Android"字符串与设备尺寸存在关联。这样的话,在“Firefox在其它操作系统的移动尺寸设备上运行”或“使用Android的笔记本电脑”的情形下,你的代码才能正确运行。此外,请使用触摸检测以分辨设备是否支持触摸,不要使用"Mobi"或"Tablet",因为也有很多触摸设备并非移动设备或平板。

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

Firefox OS设备的UA中不会有标明操作系统的字段,比如"Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0"。因为其平台是web。

 

Windows

Windows中的UA字符串会发生以下变化,其中x.y代表Windows NT 版本,(如:Windows NT 6.1)。

此处表格排版只适合电脑浏览

Windows 版本

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

Gecko UA字符串

Windows NT on x86

本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利

Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0

Windows NT, Win64 on x64

Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0

Windows NT, WOW64

Mozilla/5.0 (Windows NT x.y; WOW64; rv:10.0) Gecko/20100101 Firefox/10.0

 

Macintosh

在此,x.y是Mac OS X的版本 (如:Mac OS X 10.6)。

此处表格排版只适合电脑浏览

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

Mac OS X 版本

Gecko UA字符串

Mac OS X on Intel x86 or x86_64

Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

Mac OS X on PowerPC

Mozilla/5.0 (Macintosh; PPC Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

 

Linux

Linux平台更为多样,下面给出了几个常见的例子。

此处表格排版只适合电脑浏览

Linux 版本

Gecko UA字符串

Linux desktop, i686

Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0

Linux desktop, x86_64

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

Linux desktop, i686 running on x86_64

Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0) Gecko/20100101 Firefox/10.0

Nokia N900 Linux mobile, on the Fennec browser

Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0) Gecko/20100101 Firefox/10.0 Fennec/10.0

 

Android (40版本及以下)

此处表格排版只适合电脑浏览

设备尺寸

Gecko UA字符串

Phone

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

Mozilla/5.0 (Android; Mobile; rv:40.0) Gecko/40.0 Firefox/40.0

Tablet

Mozilla/5.0 (Android; Tablet; rv:40.0) Gecko/40.0 Firefox/40.0

 

Android (41版本及以上)

从41版本开始,Android版的Firefox会在platform字段中包含Android版本号。为增加共通性,如果浏览器在Android 4以下版本运行,此字段会使用4.4,Android 4.4及以上版本会使用当前版本号。请注意,发布到不同Android版本的Gecko,是拥有相同兼容性的同个Gecko。

此处表格排版只适合电脑浏览

设备尺寸

Gecko UA字符串

Phone

Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

Tablet

Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0

 

Firefox OS

此处表格排版只适合电脑浏览

设备尺寸

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

Gecko UA字符串

Phone

Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0

Tablet

Mozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0

本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利

TV

Mozilla/5.0 (TV; rv:44.0) Gecko/44.0 Firefox/44.0

Device-specific

Mozilla/5.0 (Mobile; nnnn; rv:26.0) Gecko/26.0 Firefox/26.0

 

本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利

具有设备特征的UA字符串

尽管Mozilla强烈反对,然而一些手机制造商仍然在其设备的UA字符串中,包含了标明设备id的字段。在这种情况下,Firefox OS的UA字符串会与上表中所示的具有设备特征(Device-specific)的字符串保持一致,其中nnnn;代表设备制造商的设备代码。其中一些是以下几个形式: "NexusOne;","ZTEOpen;","Open C;"(另请注意,也不鼓励在其中加入空格)。我们提供这些信息以辅助您指定UA判断逻辑,但Mozilla不鼓励从UA字符串中检测设备id。

这里有一个可以检测所有移动设备的JavaScript正则表达式,包含那些UA字符串中包含设备id的设备:

/mobi/i

其中 i 为大小写敏感的标记,而 mobi 则将匹配所有的移动设备。

 

本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利

Firefox OS 版本号

由于Firefox OS未被包含于UA字符串中,我们可以通过UA字符串中的Gecko版本号来推断其版本信息。

此处表格排版只适合电脑浏览

Firefox OS 版本号

Gecko 版本号

1.0.1

18.0

1.1

18.1

1.2

26.0

1.3

28.0

1.4

30.0

2.0

32.0

2.1

34.0

2.2

37

本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利

2.5

44

通过查看Mercurial发布的名字,可以较容易地找出对应关系。其中以 mozilla-b2g 开头的发布便属于Firefox OS,在其名字中包含了Firefox OS和Gecko的版本号。

Firefox OS的版本号由4位数字组成:X.X.X.Y。前两位数字由Mozilla产品团度决定,表明是包含新特性的版本(如:v1.1, 1.2等)。第三位数字随安全更新而自增(约6周左右),第四位数字由OEM维护。

 

iOS中的Firefox

iOS用户的Firefox使用的是Safari移动版默认的UA字符串,再增加了FxiOS/<version>字段,与iOS中的Chrome标记自己的方式一致。

此处表格排版只适合电脑浏览

设备尺寸

Firefox  iOS UA字符串

iPod

Mozilla/5.0 (iPod touch; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4

iPhone

Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4

iPad

Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4

 

Firefox Web 运行时(Web Runtime)

在Firefox Web运行时(Web Runtime)中,使用与桌面版Firefox一致的UA字符串。

 

其他基于Gecko的浏览器

以下是不同平台下,一些基于Gecko的浏览器的UA字符串样例。请注意,其中很多并未基于Gecko 2.0发布。

此处表格排版只适合电脑浏览

本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利

浏览器

Gecko UA字符串

Firefox for Maemo (Nokia N900)

Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 Fennec/10.0.1

Camino on Mac

Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Camino/2.2.1

SeaMonkey on Windows

Mozilla/5.0 (Windows NT 5.2; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1

SeaMonkey on Mac

Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1

SeaMonkey on Linux

Mozilla/5.0 (X11; Linux i686; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 5583字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →