我需要一种方法来检测和记录客户端在访问我的网站时使用的浏览器和版本。我想知道这样做的最佳方法是什么。我在服务器端使用MVC.net,在客户端使用JQuery 1.9+和Modernizer。
环顾四周,我看到了一些非常古老且可能已过时的帖子(FF版本3和4时代的问题),其余的则表示不用担心检测浏览器和检测功能。问题是,我工作的公司想要将这些数据存储在数据库中,因此功能检测并不是真正的解决方案。另外做一些阅读JQuery 1.9+不再支持.browser()方法了,你需要使用Jquery.support或添加Jquery.migrate插件。
我想知道最简单,最轻的(和现代?)方式来准确检测所有主流浏览器/版本。客户端或服务器端很好......虽然我非常确定客户端更可靠。
答案 0 :(得分:0)
您阅读的有关使用功能检测而非浏览器检测的建议是绝对正确的,如果您正在考虑使用浏览器检测来使网站在不同的浏览器中以不同的方式工作(或尝试使其工作原理相同)。
但正如你所说的那样,完全合理的理由是想要记录浏览器信息。
最明显的答案是使用用户代理字符串。这是一个字符串,浏览器将其作为HTTP标头的一部分发送以标识自身。
对您网站的所有请求都将记录在您的服务器日志中。这将包括浏览器提供的用户代理字符串。
有许多优秀的分析产品可用于处理服务器日志并生成有关正在使用的浏览器,正在访问的页面以及许多其他数据的统计信息。这是我推荐给你的。如果沿着这条路走下去,根本不需要你做任何额外的代码;纯粹是使用现有工具来读取日志的情况。您可以在此处阅读有关此工作的几种可能工具:http://en.wikipedia.org/wiki/List_of_web_analytics_software
这里要记住的一件事是,已知用户代理字符串不是完全可靠的信息来源。它由浏览器提供,因此可以由用户更改。有些浏览器允许用户将其更改为他们喜欢的任何内容。有些人会假装是其他浏览器或其他浏览器版本。而有些则完全由代理人等消隐。
但是,它可能和它一样好。
理论上可以使用一些偷偷摸摸的Javascript技巧来确定用户浏览器的更准确的细节,但它很复杂并且可能与恶意软件检测器有关,因此我会避免沿着这条路走下去。只需坚持使用服务器日志中的用户代理字符串,就可以了。
希望是肝脏。