我遇到了 Chrome 的情况,使用
87.0.4280.88
进行了测试,在某些情况下 Chrome 会发送 sec-ch-ua
和 sec-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
发生这种情况时,摆脱这些标头的唯一方法是使用参数
--disable-features=UserAgentClientHint
启动 Chrome。
有人对此有解释吗?据我了解,这些功能仍处于实验阶段,规范正在进行中(https://wicg.github.io/ua-client-hints/)。
我找不到“实验性平台功能”标志背后的功能列表,但我认为它更多的是实验性的 Chrome 功能,而不是实验性的 web 标准,因此该标志可能从来都不是为了禁用客户端提示,尽管其背后的标准成熟或稳定。当前的浏览器一直在实施实验性标准,因为这是获得 Web 开发人员对该标准的实际影响提供反馈的唯一方法。
根据 Chrome 的平台状态,自 Chrome 89 起默认启用客户端提示,并且似乎是解决
User-Agent
字符串减少这一更大问题的先决条件,这可能是实现它的原因之一快点。