很多的时候我们会非常的惊奇为什么网站会知道我们用什么浏览器,什么操作系统。比如 Kaku 的 Blog 上就有一个 插件 就是显示用户区域,浏览器和系统的。
其实你大部分的时候并不用担心这件事情,因为这些信息是浏览器「主动」告诉服务器的。这样是为了让服务器知道,「我在使用某个平台下的某个浏览器,请送给我知道的数据」。而 Agent 的特性不仅仅是浏览器方面有,很多的网络程序都会发送相似的「标识符」,标识自己的身份。有关 User-Agent 更详细的介绍你可以参考 这个连接 。
但是这种技术有时候会是双刃剑。如果你并不想被别人知道你在使用什么系统、什么浏览器,通常情况下这个时候,就往往显得非常的无能为力(大部分浏览器默认都没有这个选项)。如果你现在正在使用 Firefox,那么恭喜你实现了第一个家庭梦想 -- 你可以通过插件指定你自己喜欢的 User-Agent。
这个帮助我们的 Firefox 插件就是 User Agent Switcher ,你可以从 官方下载 。安装和设置非常的简单,比如我的 Firefox 设置好了以后就是这个样子:
(再推荐一个网站,你可以访问 这个连接 得知你目前的 User-Agent。)
虽然「人肉」根据字符串分析用户的浏览器和系统非常的直观。但由于 User-Agent 没有一个统一的标准(虽然 Mozilla 已经在做 这件事情 ),所以用程序分析该字符串的所使用的系统和浏览器版本还是一件比较复杂的事情。
Javascript 方面可以参考 这个链接 (希望不要被其「冗余」的代码吓到)。相对的,PHP 可以使用
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
获得当前客户端的 User-Agent 字符串。
最后请注意,更改 User-agent 会引起服务器对你的浏览器误判,可能会造成不必要的麻烦。PS: 但愿 Kaku 看见我这篇文章不要踹我。
如何用 Javascript 检测浏览器似乎是老生常谈的问题。根据本人的经验,使用 Javascript 检测浏览器无非使用两大类的方法。
其一,是使用使用浏览器的功能属性。比如检测浏览器是否支持 getElementById 方法就可以使用
if (document.getElementById) {
// the method exists, so use it here} else {
// do something else}虽然这样的检测无法得知用户具体使用哪一种浏览器,
userAgent看来真心不靠谱,之前项目里浏览器判断的地方看来得整一下了。