在线文档教程

User-Agent

User-Agent

用户代理请求头包含一个特征串,其允许网络协议对等体,以确定请求软件的用户代理的应用程序类型,操作系统,软件供应商或软件版本。

请阅读使用用户代理的浏览器检测,以及为什么向不同的浏览器提供不同的网页或服务通常是一个坏主意。

Header typeRequest header
Forbidden header nameno

句法

User-Agent: <product> / <product-version> <comment> Common format for web browsers: User-Agent: Mozilla/<version> (<system-information>) <platform> (<platform-details>) <extensions>

指令

<product> 产品标识符 <product-version> 产品的版本号<comment> 例如,零个或多个包含子产品信息的注释。

Firefox UA 字符串

有关基于 Firefox 和 Gecko 的用户代理字符串的更多详细信息,请参阅 Firefox 用户代理字符串参考。Firefox 本身的 UA 字符串被分解为四个组件:

Mozilla / 5.0(platform ; rv:geckoversion)Gecko / geckotrail Firefox / firefoxversion

  • Mozilla / 5.0 是一款表示浏览器兼容 Mozilla 的通用标记,并且几乎适用于今天的所有浏览器。

  • 平台描述浏览器运行的本地平台(例如Windows,Mac,Linux 或 Android)以及它是否是手机。Firefox OS 手机只是说“手机”; 网络就是平台。请注意,平台可以由多个“;”分隔的令牌组成。请参阅下面的进一步细节和示例。

  • rv:geckoversion 表示 Gecko 的发布版本(例如“17.0”)。在最近的浏览器中,geckoversion firefoxversion 相同。

  • Gecko / geckotrail 表明浏览器基于 Gecko。

  • 在桌面上,geckotrail 是固定字符串“20100101”

  • Firefox / firefoxversion 表示浏览器是 Firefox,并提供版本(例如“ 17.0”)。

例子

Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0

Chrome UA 字符串

Chrome(或Chromium /基于闪烁的引擎)用户代理字符串与 Firefox 格式类似。为了兼容性,它添加了诸如 “KHTML,Gecko” 和 “Safari” 之类的字符串。

例子

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36

Opera UA 字符串

Opera 浏览器也基于 blink 引擎,这就是为什么它看起来几乎相同,但添加了 “OPR / <版本>”。

例子

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41

Safari UA 字符串

在这个例子中,用户代理字符串是移动 Safari 浏览器版本。它包含“移动”一词。

例子

Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1

Internet Explorer UA 字符串

例子

Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)

爬虫和机器人 UA 字符串

例子

Googlebot/2.1 (+http://www.google.com/bot.html)

产品规格

SpecificationTitle
RFC 7231, section 5.5.3: User-AgentHypertext Transfer Protocol (HTTP/1.1): Semantics and Content

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)

FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)

  • Firefox用户代理字符串参考

  • 使用用户代理进行浏览器检测