Microsoft Edge 用户代理字符串

pul*_*jet 11 user-agent microsoft-edge

我刚刚注意到,虽然所有其他浏览器似乎都有自己的用户代理字符串,但 Microsoft Edge 的看起来像这样:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
Run Code Online (Sandbox Code Playgroud)

为什么它有 Mozilla、Chrome 和 Safari,而不仅仅是 Edge?

Ram*_*und 4

那么为什么它有 Mozilla、Chrome 和 Safari,而不仅仅是 Edge?

网页设计者只是懒惰,他们试图阻止访问者使用特定的浏览器,因为他们想使用仅某些浏览器支持的更简单的框架。

这也是一个有意的设计决定,旨在限制用户代理检查的有用性。这一决定可能基于以下事实(从 Spartan/Edge 开发人员的角度来看):过去,网站会专门查找 IE 并通知用户使用不同的浏览器。

由于 Edge/Spartan 是 Microsoft 对 Trident 引擎现代化的第一次尝试,而 Edge/Spartan 的目的是匹配当时的功能集(Blink、AppleWebKit 和 Gecko),因此用户代理只需将自己宣传为一切都是一种方式防止网页设计者像针对 IE 一样轻易地针对 Edge。

您今天访问的许多网站在 IE 中无法正常显示,因为它们的编码不正确,并且通常显示的页面就像在旧浏览器中一样,即使 Internet Explorer 11 支持许多新的 Web 标准。某些页面在 IE 中显示不正确,而在其他浏览器(例如 Chrome 或 Firefox)上却可以正常工作。

还有一个问题是,即使您关闭平滑滚动,某些网站的滚动不稳定问题也不会消失,并且在某些情况下,由于网页将您的浏览器识别为 IE,因此重要元素不会显示。

微软新的 Spartan 引擎伪装成 Chrome

Chrome 和 Firefox 也做了类似的事情:

Mozilla/5.0 (Windows NT XY; WOW64) AppleWebKit/537.36(KHTML,如 Gecko) Chrome/50.0.2657.0 Safari/537.36,gzip(gfe),gzip(gfe)"

值得指出的是,IE11的用户代理类似:

Mozilla/5.0(Windows NT 10.0;WOW64;Trident/7.0;rv:11.0),如 Gecko

用户代理字符串更改