browser - 为什么 Chrome 和 IE 将 "Mozilla 5.0"放在发送到服务器的 User-Agent 中?

标签 browser user-agent

当我自己向服务器发送许多请求时,我发现令人惊讶的是,在 IE 中,如果我选择 Opera 用户字符串,则用户字符串的值为

User-Agent  Opera/9.80 (Windows NT 6.1; U; en) Presto/2.2.15 Version/10.00

但是,如果我在 Internet Explorer 中选择其他浏览器,它会将 Mozilla 5.0 首先放入用户字符串中。

当我从 Chrome 发送 ajax 请求时,我发现他们放置用户字符串的内容相同

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20

我发现Mozilla是一个与Google和微软没有任何关系的组织。也许它是两者的竞争对手。为什么 MSFT 和 Google 都将 Mozilla 放入他们的用户代理中?有什么理由将 Mozilla 放入连接字符串中吗?

为什么 chrome 和 IE 在发送请求时都将 Mozilla 放入用户字符串中?我不知道为什么,但有什么具体原因吗?

最佳答案

参见:user-agent-string-history

这一切都可以追溯到浏览器嗅探并确保浏览器不会被阻止获取它们可以支持的内容。来自上面的文章:

And Internet Explorer supported frames, and yet was not Mozilla, and so was not given frames. And Microsoft grew impatient, and did not wish to wait for webmasters to learn of IE and begin to send it frames, and so Internet Explorer declared that it was “Mozilla compatible” and began to impersonate Netscape, and called itself Mozilla/1.22 (compatible; MSIE 2.0; Windows 95), and Internet Explorer received frames, and all of Microsoft was happy, but webmasters were confused.

关于browser - 为什么 Chrome 和 IE 将 "Mozilla 5.0"放在发送到服务器的 User-Agent 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5125438/

相关文章:

css - 缺少滚动条

javascript - 有什么方法可以检测用户是否启动了 Microsoft Edge 平板电脑或桌面浏览器?

ios - Facebook iOS 应用程序如何在其 WebView 用户代理中知道移动运营商

php - 从用户代理中提取浏览器元素

c# - 网络浏览器 : sequencing activites when no DocumentCompleted is fired by a link on hosted webpage

apache-flex - 如何在 Flex 中刷新应用程序?

python - 网络抓取 python3 时出现用户代理错误

javascript - 在 JavaScript 中阻止调用

javascript - 检测私有(private)浏览 FireFox