【发布时间】:2014-12-12 02:08:49
【问题描述】:
我已经阅读了几篇关于特征检测的文章,并且它比浏览器检测更可靠,因为浏览器会撒谎。
我找不到任何关于他们为何撒谎的信息。有谁知道他们这样做的原因?
【问题讨论】:
标签: browser browser-detection browser-feature-detection
我已经阅读了几篇关于特征检测的文章,并且它比浏览器检测更可靠,因为浏览器会撒谎。
我找不到任何关于他们为何撒谎的信息。有谁知道他们这样做的原因?
【问题讨论】:
标签: browser browser-detection browser-feature-detection
据我了解,网站管理员会通过浏览器嗅探来查找浏览器的功能并限制他们向浏览器发送的内容。如果浏览器谎报其功能,他们将从网站管理员那里获得更多信息,您可以阅读更多内容:
【讨论】:
原因很简单:
因为网站查看用户代理字符串并对浏览器做出假设,当浏览器更新到新版本时,这些假设将无效。
这几乎从网络诞生开始就一直在发生。浏览器供应商不希望他们的新版本破坏网络,因此他们调整 UA 字符串以欺骗现有网站上的代码。
最终,如果每个人都负责任地使用 UA 字符串,并在新的浏览器版本出现时更新他们的网站,那么浏览器就不需要撒谎了。但你必须承认,这要求很高。
功能检测效果更好,因为当新的浏览器版本带有该功能时,检测会自动检测它,而无需浏览器或网站所有者执行任何特殊操作。
当然,有时功能检测无法完美运行——例如,如果某个功能存在,但在特定浏览器中存在错误。在这种情况下,是的,您可能希望将浏览器检测作为后备。但在大多数情况下,特征检测是更好的选择。
【讨论】:
另一个更现代的原因是避免安装移动应用程序的需求(产品所有者可以控制我对内容能做什么和不能做什么。不用了!)。
今天 Reddit 开始阻止查看 subreddit,以防他们在 UserAgent 中检测到移动浏览器,所以我不得不更改它才能查看内容。
【讨论】: