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

在用户代理字符串缩减弃用试用期间,网站在缩减 UA 字符串后仍可继续接收完整的用户代理字符串。该试行计划已于 2023 年 9 月 23 日结束。

从 Chrome 101 开始,我们将分阶段减少“用户代理”(UA) 字符串中提供的信息。如果网站尚未有时间从使用经过缩减的用户代理字符串迁移到使用用户代理客户端提示,则可以参与弃用试用计划,以便继续接收完整的用户代理字符串。

弃用试用计划的注册将从 Chrome 100 Beta 版开始。这样,网站就可以在 Chrome 101 发布之前接收完整的 User-Agent 字符串,因为在该版本中,次要版本字符串将会缩短。如果您想在 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 客户端提示(如有需要)。我们打算在减少用户代理数量的发布完成后,让此弃用试用期到期。

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

注册试用

如需注册源试用并为您的网域获取令牌,请访问“用户代理字符串缩短”功能弃用试用页面。如果您是第三方注册者,请选中“第三方匹配”。

设置

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

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

    • 添加 Permissions-Policy 标头,其中包含应接收完整 User-Agent 字符串的第三方网域。
      • 如要允许所有第三方网域,请添加 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(或更高版本)中加载您的网站,并继续接收完整的 User-Agent 字符串。

演示

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

如何验证试用是否有效?

如需验证来源试用是否有效,请检查请求标头,并确保以下各项:

  1. User-Agent 标头包含完整版本。它不应包含任何经过缩减的值(请参阅经过缩减的 User-Agent 字符串示例列表)。一个简单的判断方法是,Chrome 次要版本字符串不应为 0.0.0
  2. Sec-CH-UA-Full 标头设置为 ?1

包含 origin-trial 令牌的初始响应的标头应如下所示:

包含完整 User-Agent 字符串的后续请求标头应如下所示:

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

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

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

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

Chrome 正在开展两项与用户代理字符串缩短相关的源试用。第一个是“用户代理字符串缩短”源试用,它允许网站在该功能成为 Chrome 中的默认行为之前接收经过缩短的用户代理字符串,以便测试其用例并提供反馈。

我们在本文中提及的第二种方法是弃用试用,适用于需要更多时间才能迁移到 User-Agent Client Hints API 的网站。这样,网站便可继续接收完整的 User-Agent 字符串。

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

用户代理字符串缩短功能弃用试用将从 Chrome 100 运行到 Chrome 115。Chrome 116 将是第一个仅发送完全缩减的 User-Agent 字符串的版本。

如何针对用户代理缩减功能的弃用试用计划提供反馈?

请将任何问题或反馈提交到 User-Agent Reduction GitHub 代码库