用户代理客户端提示 API
用户代理客户端提示 API 扩展了 客户端提示,提供了一种通过用户代理响应和请求标头以及 JavaScript API 公开浏览器和平台信息的方式。
概念和使用
解析用户代理字符串历来是获取有关用户浏览器或设备信息的方法。典型的用户代理字符串类似于以下示例,标识在 Windows 上运行的 Chrome 92
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36
用户代理客户端提示旨在通过强制执行服务器请求一组信息,浏览器决定返回什么信息的模型,以更注重隐私的方式提供此信息。这种方法意味着用户代理可以提供设置,允许用户隐藏可能通过此类请求对他们进行指纹识别的某些信息。
为了决定返回什么,通过此 API 访问的信息被分为两组 - 低熵 和 高熵 提示。低熵提示是指那些不会泄露太多信息的信息,API 使这些提示在每次请求中都易于访问。高熵提示可能泄露更多信息,因此它们被限制在浏览器可以决定是否提供它们的方式。此决定可能基于用户偏好,或在权限请求后进行。
用户代理客户端提示的用例
潜在用例包括
- 通过识别用户的浏览器缺少某些 Web 平台功能,为用户提供定制的 polyfill。
- 解决浏览器错误。
- 记录浏览器分析数据。
- 根据用户代理信息调整内容。这包括向移动设备提供不同的内容,特别是识别为低功耗的设备。它可能还包括调整设计以将界面定制到用户的操作系统,或提供指向操作系统特定界面的链接。
- 作为一项安全功能,当用户从不同的浏览器或设备登录时提供通知。
- 在提供下载的网站上提供正确的二进制可执行文件。
- 收集有关浏览器和设备的信息以识别应用程序错误。
- 阻止垃圾邮件发送者、机器人和爬虫。
接口
-
提供属性和方法以访问有关用户浏览器和操作系统的更多信息。
对其他接口的扩展
-
返回一个
NavigatorUAData
对象,它提供对有关用户浏览器和操作系统的更多信息的访问。 -
返回一个
NavigatorUAData
对象,它提供对有关用户浏览器和操作系统的更多信息的访问。
示例
获取品牌
以下示例将 NavigatorUAData.brands
的值打印到控制台。
js
console.log(navigator.userAgentData.brands);
返回高熵值
在以下示例中,使用 NavigatorUAData.getHighEntropyValues()
方法请求一些提示。当 promise 解析时,此信息将被打印到控制台。
js
navigator.userAgentData
.getHighEntropyValues([
"architecture",
"model",
"platform",
"platformVersion",
"fullVersionList",
])
.then((ua) => {
console.log(ua);
});
规范
规范 |
---|
用户代理客户端提示 |
浏览器兼容性
api.NavigatorUAData
BCD 表格仅在浏览器中加载
api.Navigator.userAgentData
BCD 表格仅在浏览器中加载
api.WorkerNavigator.userAgentData
BCD 表格仅在浏览器中加载