Web服务器如何可靠地确定发送请求的设备?

时间:2013-04-24 03:31:35

标签: javascript webserver browser-detection mobile-browser

我最近注意到我访问的某些网站能够检测到我用来查看网站的设备,但我不确定他们是如何做到这一点的。

例如,音乐流媒体应用程序www.rdio.com提供两种不同的服务;一个用于移动设备,一个用于笔记本电脑和台式电脑。他们每月为移动设备收费10美元,台式机和笔记本电脑每月收费5美元。

显然,他们必须有一个很好的方法来检测发送请求的设备作为其业务模型的一部分取决于它。 rdio和其他公司如何实现这一目标?到目前为止,我所想到的一切似乎都很糟糕。例如,如果他们依赖于http请求中的头变量,他们如何防止欺骗?或者,如果他们在客户端使用javascript来检查浏览器功能,您可以检查哪些功能以准确确定设备类型?您是看屏幕分辨率,还是陀螺仪或其他东西的存在,因为如果我有一台笔记本电脑风格分辨率的移动设备,或者带有陀螺仪的笔记本电脑怎么办?

为了准确地确定设备类型,HTTP请求或浏览器的哪些功能会进行检查?

1 个答案:

答案 0 :(得分:3)

他们依赖于浏览器的User-Agent来确定客户端使用哪种设备。

当然,用户代理可能会被欺骗,并且您无法阻止它。

虽然尝试通过尝试调用特定于这些浏览器的功能来检测真实的浏览器类型,但这并不可靠。

您可以阅读有关User-Agent here的更多信息。