用户代理缩减弃用的试用版

通过弃用用户代理缩减试用,网站可以在减少 UA 字符串后继续接收完整的用户代理字符串。此试用期已于 2023 年 9 月 23 日结束。

从 Chrome 101 开始,我们将采用分阶段方法减少用户代理 (UA) 字符串中提供的信息。如果网站没时间停止使用经过简化的用户代理字符串并改用 User-Agent Client Hints,则可参与弃用试用,以便继续接收完整的用户代理字符串。

弃用试用的注册将从 Chrome 100 Beta 版开始。它可让网站在 Chrome 101 版本之前收到完整的用户代理字符串,该版本中的次要版本字符串将减小。如果您想在 Chrome 100 Beta 版发布稳定版之前在 Chrome 100 Beta 版上测试源试用,请务必在 Chrome 100 的发布日期(目前计划于 2022 年 3 月 31 日)之前进行注册和测试。

下面概述了弃用试用及后续影响。如果您想分享反馈或在试用期间遇到任何问题,请通过 UA 缩减 GitHub 代码库告知我们。

这对 Web 开发者有什么影响?

注册弃用试用后,网站将继续在 navigator.userAgent 中收到完整的 UA 字符串,并在相关的 navigator.platformnavigator.appVersion JavaScript getter 中收到非缩减值:

  • User-Agent HTTP 请求标头
  • navigator.userAgent JavaScript getter
  • navigator.platform JavaScript getter
  • navigator.appVersion JavaScript getter

网站仍应审核其对 User-Agent 标头和相关 API 的使用情况,并根据需要在弃用试用期结束之前迁移到 User-Agent Client Hints。目的是在用户代理缩减发布完成后,让此弃用试用结束。

如何参与用户代理缩减试用计划?

注册试用

要注册试用源试用并为您的网域获取令牌,请访问弃用用户代理缩减试用页面。如果您是第三方注册,请选中“第三方匹配”。

初始设置

注册试用后,请使用以下内容更新您的 HTTP 响应标头:

  1. Origin-Trial: <ORIGIN TRIAL TOKEN> 添加到 HTTP 响应标头。<ORIGIN TRIAL TOKEN> 包含您在注册源试用时获得的令牌。
  2. Accept-CH: Sec-CH-UA-Full 添加到 HTTP 响应标头。设置 Accept-CH 只会在向源发出后续请求时发送完整的用户代理字符串。
  3. 如果在第一次请求时需要完整的用户代理字符串,那么除了 Accept-CHOrigin-Trial 标头之外,还应将 Critical-CH: Sec-CH-UA-Full 添加到您的 HTTP 响应标头中。
  4. 对于加入减少弃用试用的参与者,我们建议允许所有第三方网域访问完整的 User-Agent 字符串。如果第三方网域未能将对完整用户代理字符串的访问权限扩展至第三方网域,则无论他们是否已注册缩减弃用试用版,他们都将无法访问完整的用户代理字符串。您可以通过以下两种方法之一,允许对第三方网域进行完整的用户代理字符串访问:

    • 添加 Permissions-Policy 标头,其中包含应接收完整用户代理字符串的第三方网域。
      • 若要允许访问所有第三方网域,请添加 Permissions-Policy: ch-ua-full=*
      • 若要允许一系列已命名的第三方网域,请添加 Permissions-Policy: ch-ua-full=(self "https://thirdparty.example.com")
    • 添加 Accept-CH 元标记,其中包含应接收完整用户代理字符串的第三方网域(仅适用于 Chrome 100 及更高版本中)。
      • 若要允许一系列已命名的第三方网域,请添加 <meta http-equiv="delegate-ch" value="sec-ch-ua-full https://thirdparty.example.com">
      • 您无法在元标记中通过 * 将电子邮件委托给所有第三方网域。
  5. 在 Chrome 100(或更高版本)中加载您的网站,并继续接收完整的用户代理字符串。

演示

如需查看试用演示(以及源代码),请访问 https://uard-ot-demo.glitch.me

如何验证试用是否正常?

如需验证源试用是否正常运行,请检查请求标头并确保满足以下要求:

  1. User-Agent 标头包含完整版本。它不应包含任何缩减的值(可在缩减用户代理字符串示例列表中找到)。要想轻松判断,Chrome 次要版本字符串不应为 0.0.0
  2. Sec-CH-UA-Full 标头设置为 ?1

包含源试验令牌的初始响应标头应如下所示:

包含完整用户代理字符串的后续请求标头应如下所示:

如何停止参与用户代理缩减试用计划?

在试用期间,您可以随时停止参与,并接收经过缩减的用户代理字符串。要停止参与,请执行以下操作:

  1. 在 HTTP 响应中发送不包含 Sec-CH-UA-FullAccept-CH 标头。请注意,如果您的网站未请求任何其他客户端提示,则 Accept-CH 的值为空是实现此目的的有效方式。
  2. 请从 HTTP 响应中移除用于弃用“用户代理缩减”试用的 Origin-Trial 标头。
  3. 如果设置了 Sec-CH-UA-Full,则从 HTTP 响应的 Critical-CH 标头中移除 Sec-CH-UA-Full

此试用与其他 User-Agent 源试用有何不同?

Chrome 正在开展两项与用户代理缩减相关的源试用。第一个是用户代理缩减源试用,该功能可让网站接收经过简化的用户代理字符串,以便测试其用例并提供反馈,避免其成为 Chrome 中的默认行为。

此处提到的第二个是弃用试用,适用于需要多一点时间才能迁移到 User-Agent Client Hints API 的网站。它使网站能够继续接收完整的用户代理字符串。

弃用试用会持续多长时间?

从 Chrome 100 到 Chrome 115,用户代理缩减功能的弃用试用将从 Chrome 100 开始。Chrome 116 将是首个仅发送完全缩减的用户代理字符串的版本。

如何分享关于用户代理减少弃用试用的反馈?

如有任何问题或反馈,请提交至用户代理缩减 GitHub 代码库