Mechanism |
Server-side |
Client-side |
**User-Agent Client Hints** (recommended)
Sec-CH-UA HTTPS header
navigator.userAgentData JavaScript method
**User-Agent string** (legacy)
User-Agent HTTPS header
navigator.userAgent JavaScript method
本文介绍了Microsoft Edge支持的检索用户代理信息的方法。
特征检测
----
微软建议尽可能地检测浏览器是否支持某个功能,而不是检测浏览器。
如果你必须检测浏览器,微软建议使用客户端提示,如下。
用户代理客户端提示
---------
Microsoft Edge从90版本开始支持User-Agent Client Hints。
用户代理客户端提示是一种更干净、更保护隐私的方式来访问浏览器信息,如浏览器名称、版本号、平台,以及更多。很快,User-Agent字符串将被冻结,并被各种浏览器所淘汰。例如,Chrome平台状态网站描述了特征中的变化。减少User-Agent字符串信息。
当你想使用用户代理客户端提示时,请使用用户代理客户端提示。
- 判断新的浏览器活动是否来自预期的用户。
- 如果用户是这个网站的新用户,可以定制提示或说明。
不要使用用户代理客户端提示来:
- 阻止不支持的浏览器。
- 限制对你网站上的功能的访问。
欲了解更多信息,请浏览[W3C社区草案报告|用户代理客户端提示的规范。][2]
用户代理客户端提示 HTTPS头
----------------
当Microsoft Edge向服务器发送HTTPS请求时,它会发送一组低熵的User-Agent Client Hints头。欲了解更多信息,请浏览低熵提示表。如果服务器需要关于浏览器的更细化的信息,其响应包括一个Accept-CH头。该响应头的值是一个逗号分隔的列表,包含了服务器希望从浏览器获得的所有客户端提示请求头,例如Accept-CH:Sec-CH-UA-Full-Version,Sec-CH-UA-Platform-Version。下一次Microsoft Edge向服务器发出的HTTPS请求将包括指定的User-Agent Client Hints头。
默认情况下,Microsoft Edge会以下列格式发送Sec-CH-UA、Sec-CH-UA-Mobile和Sec-CH-UA-Platform请求头。
Sec-CH-UA: "Chromium";v="92", "Microsoft
Edge";v="92","Placeholder;Browser Brand";v="99" Sec-CH-UA-Mobile: ?0
Sec-CH-UA-Platform: "Windows"
下表显示了所有可用的提示请求头和示例值。