2016-03-30 93 views
2

我们的NodeJS + Express网络应用程序有很多用户使用Opera mini,因为代理浏览器可以帮助他们保存数据,而且很多用户都使用功能手机。Opera Mini用户代理字符串不包含'opera mini'

我的查询是这样的:

当我们试图拦截从Opera Mini的要求,user-agent-stringMozilla/5.0 (Linux; U; Android 5.1.1; en-US; ONE A2003 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 OPR/15.0.2125.101257 Mobile Safari/537.36

Opera的文件说here

Opera Mini的继续使用Presto上服务器和它的UA字符串不变;它包含字符串“Opera Mini”。

标题中还有一个x-requested-with: "com.opera.mini.native"

我的问题是,为什么Mozillauser-agent字符串显示出来而不是opera-mini?我尝试了Extreme以及High储蓄模式。 user-agent是相同的。

我错过了什么?

+0

请参阅[浏览器用户代理字符串的历史记录](http://webaim.org/blog/user-agent-string-history/)。 –

+0

@RemyLebeau谢谢。这是一个热闹的阅读,它回答了Mozilla的一部分。但是我的问题仍然存在 - 为什么它不在'user-agent'字符串中声明Opera?这篇文章虽然陈旧,但他说这个字符串应该是Opera的这种类型:Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; en)Opera 9.51或Mozilla/5.0(Windows NT 6.0; U; en; rv:1.8.1)Gecko/20061208 Firefox/2.0.0 Opera 9.51或Opera/9.51(Windows NT 5.1; U; en)' Opera自己的文档说:它的UA字符串不变;它包含Opera Mini的“Opera Mini”字符串 – nikjohn

回答

1

Opera Mini在默认情况下在Android上禁用压缩模式,然后使用Wi-Fi和渲染为纯模式(默认渲染引擎),几乎像WebView。

Opera Mini UA仅在压缩模式下包含Opera Mini。

0

如果我使用Opera Mini的极端数据保存模式访问我们的网站,我会从我在正常模式下访问时获得的字符串中获得不同的UA字符串。

正常模式:

的Mozilla/5.0(Linux的; U;的Android 4.1.1; Galaxy Nexus的构建/ JRO03C)为AppleWebKit/534.30(KHTML,例如Gecko)版本/ 4.0移动Safari/534.30 OPR/22.0。 2254.113472

极端模式:

歌剧院/ 9.80(Android的; Opera Mini的/ 22.0.2254/60.271; U;烯)的Presto/2.12.423版/ 12.16

的仅在第一UA的标识符字符串是“OPR”。