现代浏览器中的 request['HTTP_USER_AGENT'] 结构

Posted

技术标签:

【中文标题】现代浏览器中的 request[\'HTTP_USER_AGENT\'] 结构【英文标题】:request['HTTP_USER_AGENT'] structure in modern browsers现代浏览器中的 request['HTTP_USER_AGENT'] 结构 【发布时间】:2012-01-26 03:35:34 【问题描述】:

考虑到 iframe 中的 cookie 策略,我遇到了一个 Safari 问题...我还找到了一个可行的解决方案,但要使其正常工作,我需要确定用户正在查看的浏览器。

在 HTTP_USER_AGENT (django) 单词中搜索的原始解决方案 - safari。这里的问题是:

WM 用户代理上的 Safari Windows XP - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.52.7 (Khtml, like Gecko) 版本/5.1.2 Safari/534.52.7

Chrome Linux 用户代理 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.

所以我正在努力寻找信息是什么使用户代理以及如何对其进行分配以获得精确的结果。当然,在这种情况下,如果没有“chrome”这个词,我可以添加额外的内容,但是 chromium konqueror 和任何其他次要浏览器呢......

【问题讨论】:

【参考方案1】:

http://www.quirksmode.org/js/detect.html

只需搜索单词 Chrome,然后搜索 Safari。

【讨论】:

【参考方案2】:

所以我发现在用户代理中可以有你想要的任何信息。

你可以通过某种抽象规则来确定浏览器,但这些规则并不适用于所有浏览器。

在浏览器大战期间,许多 Web 服务器被配置为仅将需要高级功能的网页发送到被识别为某些版本的 Mozilla 的客户端。 出于这个原因,大多数 Web 浏览器使用如下的 User-Agent 值:Mozilla/[version] ([system and browser information]) [platform] ([platform details]) [extensions]

更多@http://en.wikipedia.org/wiki/User_agent

就我而言,我查看了 http://www.user-agents.org/ 并确定只有 Chrome 在最后一部分模拟了 Safari。

【讨论】:

以上是关于现代浏览器中的 request['HTTP_USER_AGENT'] 结构的主要内容,如果未能解决你的问题,请参考以下文章

AJAX原生JS代码

现代浏览器中的 TypeScript 支持

现代浏览器中的鼠标滚轮事件

微信内置浏览器如何自动跳转其它浏览器

现代浏览器中的非阻塞 javascript 和 css。还需要吗?

如何在现代浏览器中临时禁用 XSS 保护以进行测试?