User-Agent
的用户代理请求头包含一个特征串,其允许网络协议对等体,以确定请求软件的用户代理的应用程序类型,操作系统,软件供应商或软件版本。
请阅读使用用户代理的浏览器检测,以及为什么向不同的浏览器提供不同的网页或服务通常是一个坏主意。
Header type | Request header |
---|---|
Forbidden header name | no |
句法
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.0Mozilla/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)
产品规格
Specification | Title |
---|---|
RFC 7231, section 5.5.3: User-Agent | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |
浏览器兼容性
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
- 用户代理检测,历史记录和清单
- Firefox用户代理字符串参考
- 使用用户代理进行浏览器检测