尽管禁用了“实验性 Web 平台功能”,为什么 Chrome 仍发送 sec-ch-ua 和 sec-ch-ua-mobile 请求标头

ivi*_*caa 12 browser google-chrome http-headers client-hints

我遇到了 Chrome 的情况,经过测试87.0.4280.88,在某些情况下 Chrome 会发送sec-ch-uasec-ch-ua-mobile请求标头,尽管chrome://flags/#enable-experimental-web-platform-features设置为“禁用”。

例如:

sec-ch-ua: "Google Chrome";v="87", " Not;A Brand";v="99", "Chromium";v="87"
sec-ch-ua-mobile: ?0
Run Code Online (Sandbox Code Playgroud)

发生这种情况时,摆脱这些标头的唯一方法是使用参数启动 Chrome --disable-features=UserAgentClientHint

有人对此有解释吗?据我了解,这些功能仍处于实验阶段,规范正在进行中(https://wicg.github.io/ua-client-hints/)。

Nik*_*nko 0

我找不到“实验性平台功能”标志背后的功能列表,但我认为它更多的是关于实验性Chrome 功能而不是实验性Web 标准,因此该标志可能从未打算禁用客户端提示、成熟度或稳定性尽管其背后的标准。当前的浏览器一直在实施实验性标准,因为这是获得 Web 开发人员对该标准的实际影响的反馈的唯一方法。

根据 Chrome 的平台状态,自 Chrome 89 以来客户端提示默认启用,并且似乎是解决User-Agent字符串减少这一更大问题的先决条件,这可能是它快速实现的原因之一。