我正在尝试识别并研究哪些用户代理正在向我们的应用程序发送请求。
当我在 Chrome 中执行请求时,我看到它说
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"
当我从 safari 执行它时,它说
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50
当你从 mozilla 执行它时,它会说
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:49.0) Gecko/20100101 Firefox/49.0
为什么所有请求都显示“Mozilla/5.0”,特别是对于 chrome,它列出了所有 mozilla、chrome 和 safari。
谁能解释一下为什么会出现这种情况?谢谢。
最佳答案
用户代理字符串很困惑,编写代码来从中获取准确信息非常困难。 (有关原因的详细历史记录,请参阅 this link)。
如果您只是想收集统计信息,请尝试将 Google Analytics 添加到您的前端,或使用专门用于在后端解析用户代理字符串的库,例如 MobileDetect对于 PHP。
如果您想根据浏览器支持的功能执行不同的操作,请尝试检测对该功能的支持而不是浏览器版本。 Modernizr非常适合这个。
关于http-headers - chrome 表示 Mozilla/5.0(Macintosh;Intel Mac OS X 10_10_5)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/54.0.2840.71 Safari/537.36,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40238387/