在 chrome 响应式模拟器中重定向更改用户代理
Posted
技术标签:
【中文标题】在 chrome 响应式模拟器中重定向更改用户代理【英文标题】:Redirect in chrome responsive simulator changing user agent 【发布时间】:2021-12-16 19:29:09 【问题描述】:当我在 chrome 响应式模拟器中向返回 302 重定向的页面发出请求时,我看到一个带有不同用户代理字符串的新请求。
在这里您可以看到带有“android 7.1.1”的用户代理
对于 302 重定向后的下一个请求,用户代理字符串被更改。
【问题讨论】:
【参考方案1】:您引用的问题与 .NET 服务器无关。它无法为浏览器返回用户代理字符串。
用户代理字符串仅由浏览器设置。但是你的字符串被改变了。
现在检查 Chrome (v95 x64)、Opera(在 Chromium v94 x64 上)、Edge (v95 x64) 和 FireFox (v94 x64)。
对于重定向链接,我使用了 HTTP://google.com(是的,不是 HTTPS - 将 HTTPS 重定向为307 Inner redirect
)。所有用于速度和统一的初始用户代理都设置为相同的“iPhone 5/SE”。
我的结果如下。
铬。
HTTP 请求以电话 Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (Khtml, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1
发送。
HTTPS 为Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
。用户代理已更改。问题。您突出显示的相同案例。
Opera(几乎是另一个 Chrome 版本)。 HTTP 请求以电话形式发送。 HTTPS 就像电话一样。没有用户代理更改。一切正常。
Edge(几乎相同的 Chrome 版本)。与 Chrome 上的情况相同。叮!
FireFox(不同的引擎)。 HTTP 不适用 - 使用的 HTTP/3 最初以 HTTPS 开头。这里不是例子。
Chromium 错误列表中存在类似问题。但它不像你的。 https://bugs.chromium.org/p/chromium/issues/detail?id=1234461&q=User-agent%20string&can=2
无论如何,您似乎在 v95 上发现了 Chromium 问题。
我的问候!您有权报告问题。
作为一个选项,可以在服务器上使用新的User-Agent Client Hints
标头Sec-CH-UA*
:Sec-CH-UA
、Sec-CH-UA-Mobile
、Sec-CH-UA-Platform
。但这些扩展是新的。大多数大众现代浏览器都在使用它,但不是 Firefox 或 Safari。只需设置您的服务器以请求它们。如果客户端正在使用UA字符串,最好通过JS获取正确的值:navigator.userAgent
、navigator.appVersion
和navigator.platform
。
计划在未来摆脱已经不明确的UA字符串。
【讨论】:
以上是关于在 chrome 响应式模拟器中重定向更改用户代理的主要内容,如果未能解决你的问题,请参考以下文章