--- title: User-Agent slug: Web/HTTP/Headers/User-Agent tags: - 参考 - 头标签 - 浏览器 - 用户代理 - 首部 translation_of: Web/HTTP/Headers/User-Agent ---
User-Agent 首部包含了一个特征字符串,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号。
请阅读使用用户代理字段进行浏览器检测来了解为什么为不同的浏览器提供不同的页面或者服务通常不是一个好主意。
Header type | {{Glossary("Request header")}} |
---|---|
{{Glossary("Forbidden header name")}} | no |
User-Agent: <product> / <product-version> <comment>
浏览器通常使用的格式为:
User-Agent: Mozilla/<version> (<system-information>) <platform> (<platform-details>) <extensions>
查阅 Firefox 用户代理字符串参考来获取更多关于基于 Firefox 和 Gecko 渲染引擎的用户代理字符串的细节信息。Firefox 的用户代理字符串自身可以分为四部分:
Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
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 (或 Chromium/blink-based engines)用户代理字符串与 Firefox 的格式类似。为了兼容性,它添加了诸如 "KHTML, like Gecko" 和 "Safari" 这样的字符串。
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
现在,Opera 也是一款基于 blink 引擎的浏览器,这也是为什么它的 UA 看起来(和 Chrome 的)几乎一样的原因,不过,它添加了一个 "OPR/<version>
"。
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
使用 Presto 引擎的、更老的 Opera 浏览器使用:
Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00 Opera/9.60 (Windows NT 6.0; U; en) Presto/2.1.1
在这个示例中,这是 Safari 的移动版本的用户代理字符串。因为其中包含了单词 "Mobile" 。
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
Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)
Googlebot/2.1 (+http://www.google.com/bot.html)
规范 | 标题 |
---|---|
{{RFC("7231", "User-Agent", "5.5.3")}} {{RFC(2616, "User-Agent", "14.43")}} |
超文本传输协议 (HTTP/1.1): 语义和内容 超文本传输协议 -- HTTP/1.1 |
此页面中的兼容性表格由结构化数据生成。 如果您想为数据做出贡献,请查看https://github.com/mdn/browser-compat-data 并向我们发送拉取请求。
{{Compat("http.headers.User-Agent")}}