为啥 Chrome 和 IE 将“Mozilla 5.0”放在它们发送到服务器的 User-Agent 中? [复制]

Posted

技术标签:

【中文标题】为啥 Chrome 和 IE 将“Mozilla 5.0”放在它们发送到服务器的 User-Agent 中? [复制]【英文标题】:Why do Chrome and IE put "Mozilla 5.0" in the User-Agent they send to the server? [duplicate]为什么 Chrome 和 IE 将“Mozilla 5.0”放在它们发送到服务器的 User-Agent 中? [复制] 【发布时间】:2011-07-04 18:29:02 【问题描述】:

当我自己向服务器发送许多请求时,我发现在 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 和 Microsoft 没有任何关系的组织。也许它是两者的竞争对手。为什么 MSFT 和 Google 都将 Mozilla 放在他们的用户代理中?将Mozilla放在连接字符串中是否有任何理由?

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

【问题讨论】:

Mozilla/5.0 是表示浏览器与 Mozilla 兼容的通用标记,并且在当今几乎所有浏览器中都很常见。 @GeorgeStocker 我认为this 会更好。 【参考方案1】:

见:user-agent-string-history

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

Internet Explorer 支持框架,但不是 Mozilla,因此没有提供框架。微软变得不耐烦了,不想等站长知道 IE 并开始给它发送帧,所以 Internet Explorer 宣布它是“Mozilla 兼容的”并开始冒充 Netscape,并称自己为 Mozilla/1.22(兼容; MSIE 2.0; Windows 95) 和 Internet Explorer 接收帧,所有微软都很高兴,但网站管理员却很困惑。

【讨论】:

这很有趣,但很高兴知道! :D Microsoft Edge 的用户代理字符串:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0 :) @IgorJerosimić 搞定了。 Mozilla/5.0 是表示浏览器与 Mozilla 兼容的通用标记,并且在当今几乎所有浏览器中都很常见。

以上是关于为啥 Chrome 和 IE 将“Mozilla 5.0”放在它们发送到服务器的 User-Agent 中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

日期选择器 html5 标记不适用于 Mozilla、IE 浏览器。但它仅适用于 Chrome

javascript 在 mozilla 中运行良好,但在 IE6 中出现未知的运行时错误,为啥?

为啥 IE 和 Chrome 呈现 css 边框底部宽度不同?

max-width 在 Mozilla 和 IE 中不起作用

使用 jQuery 为啥 IE/Chrome 最初会为 textarea 提供不正确的 clientHeight 和 scrollHeight?

在 IE 和 Mozilla Firefox 中,背景颜色和背景图像未在打印到 PDF 时显示