首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么用户代理字符串被更改?

为什么用户代理字符串被更改?
EN

Stack Overflow用户
提问于 2018-08-27 22:10:47
回答 1查看 748关注 0票数 0

我在调试应用程序时遇到了问题。在我的应用程序中,我需要判断用户是在移动设备上还是不在用户代理字符串的基础上。

从日志信息开始,我看到用户代理是"Mozilla/5.0 ( iPhone;CPU iPhone OS 11_4_1,如Mac ) AppleWebKit/605.1.15 (KHTML,类似Gecko)版本/11.0Mobile/15E148 Safari/604.1",它应该是iOS 11上的Safari 11。几分钟后,用户代理信息更改为"Mozilla/5.0 (Macintosh;英特尔macOS X 10_13_4) AppleWebKit/605.1.15 (KHTML,类似Gecko) Version/11.1 Safari/605.1.15",应该是macOS上的Safari11.1(高级Sierra)。从tealeaf我看到用户没有改变浏览器或设备。

所以我的问题是:

  1. 用户代理字符串是否有可能在不改变浏览器和设备的情况下进行更改?什么时候?
  2. 对于我的案子,为什么会发生这种事?
  3. 判断用户是否在移动/平板电脑或桌面上的最可靠的方法是什么?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-08-27 22:20:58

  1. .完全可以在不改变浏览器或设备的情况下操作用户代理字符串。完全欺骗它是可能的(也是相当琐碎的),比如使用用户代理交换机 for Chrome。话虽如此,绝大多数用户不会去欺骗它。
  2. 考虑到用户代理字符串认为浏览器是相同的,但是不是操作系统.我假设用户打开了Device Toolbar,并在F12开发工具中启用了Responsive Mode。这允许您模拟一个网站的显示以不同的高宽比,并确实操作用户代理字符串时,您选择一个可用的设备。
  3. 这取决于你到底想做什么。如果您正在寻找基于设备的不同的逻辑,我建议使用正则表达式。在DetectMobileBrowsers中,对于不同的编程语言有一些很好的例子。但是,如果您正在寻找一个不同的显示,我建议您使用媒体查询。您可以为设备的widthpixel ratio甚至orientation提供服务。在CSS技巧上有一个很好的通用查询列表。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52047599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档