2013-11-14 66 views
2

今天我安装了IE 11与Windows更新。为什么我为IE获得'Mozilla'?

我使用IE发出请求,但Request.Browser.Browser返回'Mozilla'。为什么?

+2

给出了一点上下文:http://blogs.msdn.com/b/ieinternals/archive/2013/09/21/internet-explorer-11-user-agent-string-ua-string-sniffing-兼容性与gecko-webkit.aspx –

+2

和此,http://msdn.microsoft.com/en-us/library/ie/hh869301(v=vs.85).aspx –

回答

2

User agent sniffing is bad for users和间接为浏览器厂商太。这就是供应商试图找到解决这种反模式的原因。在IE版本9开始,当the User-Agent string was frozenmake the life for caching proxies easier

除了高速缓存代理之外,更重要的问题是过时的脚本。 IE 11比IE 10更好,因此它不应该接收为IE 10准备的内容。由于Microsoft无法在网络中修复每个旧的嗅探脚本,因此必须再次找到解决算法的方法changing the UA string

新规则UA字符串是:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko 

在兼容性视图的UA字符串是:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C) 

Opera made a similar decision for Opera 15+,不使用Presto渲染引擎了。它的新的UA字符串是:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.100 

OPR/后的版本号表明实际的歌剧版本,但敌不过Opera了。

请不要只调整嗅探脚本。你无法赢得比赛。尽可能使用客户端功能检测。

相关问题