用户代理/浏览器为什么说谎

问题描述 投票:1回答:3

我已经阅读了几篇有关特征检测的文章,它比浏览器检测更可靠,因为浏览器在说谎。

我找不到有关它们为什么说谎的任何信息。有人知道这样做的原因吗?

browser browser-detection browser-feature-detection
3个回答
1
投票

据我了解,网站站长会进行浏览器嗅探,以查找浏览器的功能并限制向浏览器发送的内容。如果浏览器依靠其功能,他们将从网站管理员那里获得更多信息,则可以阅读更多内容:

http://farukat.es/journal/2011/02/499-lest-we-forget-or-how-i-learned-whats-so-bad-about-browser-sniffing

http://webaim.org/blog/user-agent-string-history/


2
投票

原因很简单:

因为网站查看用户代理字符串并做出有关浏览器的假设,所以当浏览器更新到新版本时,这些假设将无效。

几乎从网络开始以来就一直在进行。浏览器供应商不希望他们的新版本破坏网络,因此他们调整了UA字符串以欺骗现有站点上的代码。

[最终,如果每个人都负责任地使用UA字符串并在新的浏览器版本问世时更新其网站,则浏览器无需撒谎。但是您必须承认,这要求很多。

功能检测效果更好,因为当具有该功能的新浏览器版本发布时,该检测将自动进行检测,而无需浏览器执行任何特殊操作或网站所有者。

当然,有时功能检测不能完美运行-例如,可能某个功能存在但在特定浏览器中存在错误。在那种情况下,是的,您可能希望将浏览器检测为备用。但是在大多数情况下,特征检测是一个更好的选择。


0
投票

另一个更现代的原因是避免安装移动应用程序的要求(产品所有者控制我对内容的处理能力。不能,谢谢!)。>

今天,Reddit开始阻止查看子Reddit,以防他们在UserAgent中检测到移动浏览器,因此我不得不更改它以便能够查看内容。

© www.soinside.com 2019 - 2024. All rights reserved.