-1

我需要一种方法来检测和记录客户端在访问我的站点时使用的浏览器和版本。我想知道这样做的最佳方法是什么。我在服务器端使用 MVC.net,在客户端使用 JQuery 1.9+ 和 Modernizer。

环顾四周,我看到一堆非常旧且可能已经过时的帖子(FF 版本 3 和 4 时代的问题),其余的则表示不用担心检测浏览器并检测功能。问题是,我工作的公司希望将这些数据存储在数据库中,因此特征检测并不是真正的解决方案。还做一些阅读 JQuery 1.9+ 不再支持 .browser() 方法,您需要使用 Jquery.support 或添加 Jquery.migrate 插件。

我想知道准确检测所有主要浏览器/版本的最简单、最轻量级(和现代?)的方法。客户端或服务器端很好......虽然我很确定客户端更可靠。

4

1 回答 1

0

您阅读的关于使用功能检测而不是浏览器检测的建议是绝对正确的,如果您正在考虑使用浏览器检测使站点在不同的浏览器中以不同的方式工作(或尝试使其工作相同)。

但是,正如您所说,想要记录浏览器信息是完全正当的理由。

最明显的答案是使用用户代理字符串。这是一个字符串,浏览器作为 HTTP 标头的一部分发送以标识自己。

向您的站点发出的所有请求都将记录在您的服务器日志中。这将包括浏览器提供的用户代理字符串。

有许多优秀的分析产品可以处理服务器日志并生成有关正在使用的浏览器、正在访问的页面以及许多其他数据的统计信息。这就是我要为你推荐的。如果你走这条路,你根本不需要做任何额外的代码;这纯粹是使用现有工具读取日志的情况。您可以在此处阅读有关此工作的几种可能工具:http ://en.wikipedia.org/wiki/List_of_web_analytics_software

这里要记住的一件事是,已知用户代理字符串不是完全可靠的信息来源。它由浏览器提供,因此可以由用户更改。一些浏览器允许用户将它们更改为他们喜欢的任何内容。有些会伪装成其他浏览器或其他浏览器版本。有些完全被代理等屏蔽掉了。

然而,它可能和它得到的一样好。

理论上可以使用一些偷偷摸摸的 Javascript 技巧来确定有关用户浏览器的更准确的细节,但它很复杂并且可能会与恶意软件检测器发生冲突,所以我会避免走这条路。只需坚持服务器日志中的用户代理字符串,就可以了。

希望有帮助。

于 2013-05-24T21:47:22.217 回答