微软带头打了30年,这场屏幕里的大乱斗,终于要结束了。。。

最近有这么一条新闻~Et7每天发布大量与生活相关的资讯平台

苹果、微软、谷歌和 Mozilla 这几大浏览器制造商宣布将要联合起来,解决网页适配问题了。Et7每天发布大量与生活相关的资讯平台

由于这个 “ 联合军 ” 几乎包括了所有主要的浏览器供应商,随着他们的协作,程序员们的工作将大大减少,而网民们也将拥有更舒适、统一的浏览体验。Et7每天发布大量与生活相关的资讯平台

像下面这样一些比较奇怪的页面效果,将不复存在。Et7每天发布大量与生活相关的资讯平台

畸形的图像显示(左图)↓ ↓Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

很不对头的动画效果 ↓ ↓ Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

不按预期出牌的粘性表头 ↓ ↓Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

展开全文
Et7每天发布大量与生活相关的资讯平台

之所以不同网站在不同浏览器上的显示或互动效果不同,是因为 不同的浏览器对同一段代码有不同的解析Et7每天发布大量与生活相关的资讯平台

如果网站不针对不同浏览器做适配,那用户体验就会直接爆炸。。。Et7每天发布大量与生活相关的资讯平台

其实,为了解决不同浏览器各自为营导致的兼容、适配问题,从浏览器诞生之初,各个巨头就没少折腾。Et7每天发布大量与生活相关的资讯平台

其中非常有趣的一件事情, 是由微软掀起的,俗称 UA 大混战的 “ 战役 ” 。Et7每天发布大量与生活相关的资讯平台

今天咱们就来聊聊这个~ Et7每天发布大量与生活相关的资讯平台

几乎所有的浏览器, UA 开头都是 Mozilla Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

在正式开始之前, 别急着问 UA 是啥,先听一个小故事。Et7每天发布大量与生活相关的资讯平台

约 30 年前,第一次 “ 浏览器世界大战 ” 时,微软跟 Netscape 杠上了。Et7每天发布大量与生活相关的资讯平台

Netscape,即大名鼎鼎的网景,他们的浏览器名为网景导航者( Netscape Navigator ),内部代号为 Mozilla Et7每天发布大量与生活相关的资讯平台

就像大家现在看到 IE 浏览器的图标会想到上网一样,当年大家上网不说上网,而是说上网景。Et7每天发布大量与生活相关的资讯平台

因为当时的网景整了很多创新之举,比如搭载 Cookie 、支持 Java 脚本以及Frames 技术, 功能非常强大,饱受网虫欢迎。Et7每天发布大量与生活相关的资讯平台

就 Frames 技术来说,它使得浏览器窗口能同时显示多个网页,每个 Frame 里可以放一个网页,网页相互独立。Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

放到今天,大家看起来肯定感觉:就这???Et7每天发布大量与生活相关的资讯平台

但在互联网早期,网页基本上就是一行行的字跟简单的图片构成的。像下图一样。Et7每天发布大量与生活相关的资讯平台

相比之下,Frames 赋予了网页更强大的实用性、便捷性,瞬间流行了起来~Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

正是因为前述不同浏览器之间巨大的特性差异,用夸张手法来说,网景都支持像 Frames 这样的高级特性了,有的浏览器可能连图片显示都还没支持。Et7每天发布大量与生活相关的资讯平台

对于网站来说,给不支持 Frames 的网站,返回带 Frames 的页面显然是不合适的。Et7每天发布大量与生活相关的资讯平台

于是,User Agent 嗅探诞生了。Et7每天发布大量与生活相关的资讯平台

UA 是什么东西呢?Et7每天发布大量与生活相关的资讯平台

UA 就是浏览器的 “ 身份证 ” ,上面有浏览器的身份信息,把它递给网站,网站就知道你是谁,能做啥 (比如能不能显示图片),然后给你返回对应的网页。 Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

比如下面是一个 Netscape 的 UA ,网站看到 Mozilla/1.0 就知道浏览器跟浏览器的版本号,看到后面的 Win3.1 就能知道相关操作系统。Et7每天发布大量与生活相关的资讯平台

Mozilla/1.0 ( Win3.1 ) Et7每天发布大量与生活相关的资讯平台

UA 识别到这是网景浏览器以后,网站服务端表示,卧槽这个浏览器很厉害啊!我要给他发一个高级的页面。Et7每天发布大量与生活相关的资讯平台

如果是其他浏览器,那网站服务端就会发一个普通的页面过去,毕竟,万一发去高级的,它不支持怎么办?Et7每天发布大量与生活相关的资讯平台

当时的微软已经是大公司了,手底下有一批优秀的软件工程师专门做 IE 浏览器,很多功能并不比网景落后,像 Frames 这些 IE 也有。Et7每天发布大量与生活相关的资讯平台

IE 1.0 Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

但很可惜,IE 当时还是一个 “ 新生儿 ” ,尽管它支持高特性的网页,但网站却没有给 IE 做适配,给它返回的是普通网页。Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

可是 IE 已经等不及了,它迫切的提想要打败网景,夺下这片市场,所以它决定 —— 来骗。Et7每天发布大量与生活相关的资讯平台

你不是通过识别 UA 来判断返回什么网页么?好,那我就披一层网景的衣服,假装是网景,骗你给我高特性的网页!Et7每天发布大量与生活相关的资讯平台

靠着种种手段,比如捆绑销售,IE 的占有率节节攀升,到 IE 4.0 的时候,微软基本上是把网景打趴下。Et7每天发布大量与生活相关的资讯平台

IE 4.0 ▼Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

但网景也没有完全认输,在被收购之前公开了源代码,还用最初开发代号 Mozilla 创建了 Mozilla 组织。Et7每天发布大量与生活相关的资讯平台

火狐浏览器就是这个组织的产物。Et7每天发布大量与生活相关的资讯平台

为了跟之前的网景浏览器相区分,火狐在之前 UA 的基础上,加入了自己的标识:Firefox 。Et7每天发布大量与生活相关的资讯平台

同时 Mozilla 还写了一个叫 Gecko 的排版引擎,这个渲染引擎非常厉害,火狐也把它加入到了自己的 UA 之中。Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

跟前面一样。。Et7每天发布大量与生活相关的资讯平台

网站也知道用 Gecko 引擎的浏览器会比较厉害,花活比较多,于是会为它准备更高级的页面,为其他浏览器准备普通页面。Et7每天发布大量与生活相关的资讯平台

其他浏览器也很苦恼,从技术层面我们明明也能实现这些,只是网站没给机会,于是也开始伪造 “ 身份证 ”。Et7每天发布大量与生活相关的资讯平台

戏剧性的一幕出现了:所有浏览器都开始伪装自己是 Mozilla 。 Et7每天发布大量与生活相关的资讯平台

首先是 Linux 的追随者,他们编写了 Konqueror,引擎是 KHTML。Et7每天发布大量与生活相关的资讯平台

这群人认为 KHTML 跟 Gecko 一样好,但是网站却不给他们返回好的页面,于是开始伪装自己,还在 UA 里写下我们跟 Gecko 一样好~Et7每天发布大量与生活相关的资讯平台

UA = Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) Et7每天发布大量与生活相关的资讯平台

(KHTML, like Gecko) Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

而苹果家的 safari 呢,它基于 KHTML 引擎,但是 加了新的特性,所以另起炉灶叫自己 WebKit 。 Et7每天发布大量与生活相关的资讯平台

但同时,他也不想失去那些为 KHTML 编写的东西,所以它也选择延续前面的 UA ,再加一点标识。。。Et7每天发布大量与生活相关的资讯平台

Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5Et7每天发布大量与生活相关的资讯平台

而咱们现在最常用的 Chrome 浏览器呢,则是基于 WebKit 开发的,但也是做了修改,跟前人一样,也不想失去那些为 WebKit 编写的东西。 Et7每天发布大量与生活相关的资讯平台

于是在 UA 中,他把自己伪装成这样。。。Et7每天发布大量与生活相关的资讯平台

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko)Chrome/0.2.149.27 Safari/525.13Et7每天发布大量与生活相关的资讯平台

总之,无限套娃。Et7每天发布大量与生活相关的资讯平台

最后, 人人都不是 Mozilla,人人都是 Mozilla。Et7每天发布大量与生活相关的资讯平台

围绕 UA 的骚操作还有很多,比如有些人明明用的是手机浏览器刷网页,但会通过修改 UA ,骗网站:“ 我是电脑!给我发对应的网页来 ”~Et7每天发布大量与生活相关的资讯平台

这样一来,就能规避手机网页中那些 “ 打开 XX APP,查看全部 XX 评论 ” 的拦截了。 Et7每天发布大量与生活相关的资讯平台

比如之前优酷对 iPhone 端的浏览器是不提供视频广告的。 Et7每天发布大量与生活相关的资讯平台

于是乐视浏览器就通过修改 UA ,骗优酷自己是 iPhone ,以获取没有广告的优酷视频。Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

除了离谱的 UA 之外,浏览器之间因为各自为营,还衍生了各种 “ 兼容模式 ” ,“ 兼容插件 ” 。 Et7每天发布大量与生活相关的资讯平台

哎,为什么,直到现在浏览器才想起来要 “ 统一标准 ” 这件事儿呢? Et7每天发布大量与生活相关的资讯平台

嗯。。。差评君猜测主要是两方面。。。 Et7每天发布大量与生活相关的资讯平台

一方面是公开统一的标准推行起来很慢,毕竟涉及到的厂商很多,而厂商们为了迅速抢占市场,往往会想要 “ 立刻 ” 提升用户体验。Et7每天发布大量与生活相关的资讯平台

另一方面是,如果大家都统一,就失去了自己独特的优势, 从产品沦为工具Et7每天发布大量与生活相关的资讯平台

而在现在浏览器主要功能都大差不差,趋向稳定,很难在技术上有跨时代的突破,再纠结于自家标准,意义已经不大了。更多的是给程序员,给用户带来的不便,还不如走向统一。Et7每天发布大量与生活相关的资讯平台

而曾经围绕 IE 浏览器的打响的,属于电脑屏幕中的两次 “ 世界大战 ” ,也以群雄割据,统一标准的局面走向了尾声。Et7每天发布大量与生活相关的资讯平台

撰文:渡渡鸟武士 编辑:面线 & 小鑫鑫 美编:萱萱Et7每天发布大量与生活相关的资讯平台

部分图片、资料来源:Et7每天发布大量与生活相关的资讯平台

docstore.mik.ua/orelly/web/html/ch02_11.htmlEt7每天发布大量与生活相关的资讯平台

webaim.org/blog/user-agent-string-historyEt7每天发布大量与生活相关的资讯平台

web.dev/compat2021/Et7每天发布大量与生活相关的资讯平台

copyfuture.com/blogs-details/2020081018354620389ly35dtlleop0uEt7每天发布大量与生活相关的资讯平台

www.ip138.com/useragent/Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

Et7每天发布大量与生活相关的资讯平台

也许你还喜欢

ups不间断电源原理分析

当前在电源市场上,所销售的电源类型较多,不同类型的电源,相应的功能与作用有所不同。在超

空间背景音乐怎么添加图文教程分享

怎样免费添加QQ空间背景音乐其实步骤也不多,很简单,主要有以下几个步骤,详情如下

万能转换器破解版怎么用?具体操作方

万能格式转换器是一款功能强大的格式转换软件,音频、视频、图片、光驱设备都可以通过万

rmvb转mp4格式转换器图文教程

在我们日常娱乐和日常工作中,现在网络上一些高清的视频一般都是rmvb格式的,而一些播放设

支付宝网络系统异常怎么解决

支付宝支付出现网络系统异常是因为IE浏览器设置Internet选项不恰当而导致的,去重新设置

win10蓝牙驱动破解版安装图文教程

win10蓝牙驱动怎么安装?请看下面具体操作方法。

微孔抛光镜面加工计数详解

一般来说,对于小孔微孔进行抛光,传统的加工方法可能会导致孔洞磨损,或者加工效果不理想。

短视频内容管理助手有哪些?怎么好用

随着短视频的普及,越来越多的人开始将大量的时间和精力投入到短视频的制作和分享中。因

模具设计学习知识分享

今天,我想谈谈我在模具设计CAD方面的一些心得体会。作为一个从事这个行业多年的工程师,

seo优化排名软件详细介绍

1. SEMrush SEMrush,一款广受好评的SEO神器,被誉为业内最佳的SEO分析工具。功能包括全