曾经的王者为何退役?浏览器背后的技术是什么?
前言
随着Windows的官宣,ie浏览器将于6月16日正式退役。
那个曾几何时的浏览器之王,经历一次又一次操作系统的迭代,直至新兴浏览器的出现后沦为浏览器鄙视链的最后一层,在叹息与嘲笑声中跌出神坛,经历了大起大落的二十年,终于要说再见了。
历史的演进
1.少年被寄予厚望
1995年,微软正处于势不可挡的时期,而浏览器的市场主要来源于网景公司,一款名为导航者的浏览器一统天下。
为了拥有自己的浏览器,微软获购买了望远镜公司的Mosaic浏览器版权,在经过魔改后,微软也拥有了属于自己的浏览器,并取名为Internet Explorer。此时它主要是被应用于大学和研究机构之间通过FTP实现文件共享。
几个月后,微软又发布了IE2,这个版本的IE才真正进入了人们的视野。它直接复制了导航者的一大部分功能,如导入书签,支持超文本标记语言特性等,迅速积累了第一批用户。为了实现大规模商用,在第二年IE3就接紧发布。抛弃了原先使用的Spyglass源代码,添加了一些新技术,支持ActiveX、和128位加密等。
微软的目的,是将IE打造成浏览器界的Windows。
2.第一次浏览器大战:登上王位
IE通过频繁增添新功能的方式迅速挖掘到了市场。但是和网景依然是你追我赶,始终没能拉开差距。
此时敏锐的微软借助操作系统上的核心竞争力,马上决定让IE成为Windows系统的默认浏览器。也就是说,只要你使用了微软的操作系统,那么默认浏览器就是IE。
借助这种捆绑销售的方式,微软取得了巨大成功。仅又一年后的1997,微软就发布了IE4.0,此时它已经握有80%的市场占有率。
很多人觉得IE没有技术,其实在早期IE是有技术的,并且是当时绝对领先的技术。IE4.0采用了Trident渲染引擎,它能够借助代码让页面实时变化,也就是最早的动态页面,放在当时可以吊打一众浏览器。
通过先进的技术和背后的靠山,2003年,它的市场占有率达到了惊人的95%,年仅8岁的它,正式称王。为了迎合它,苹果甚至将macOS的默认浏览器都设置为IE。
不夸张地说,它垄断了当时Web浏览器市场。
3.毫无作为的5年
也是由于这种垄断地位,让微软觉得互联网似乎已经没有对手了。于是在IE6.0发布之后,微软就解散了研发团队。并且在之后的五年时间里面,都未正视过IE的维护和优化。它的技术依然停留在2003年,那个单进程模式。
随之降临的便是越来越多的问题,横飞的木马和漏洞,动不动就会卡死的网页,极慢的启动速度,以及让你随时可能奔溃的心态。
这五年,是IE技术和市场的停滞,但也是Web高速发展的时期。微软犯了傲慢的错误,却依然享受于作为老大占领市场的快感之中,对濒临城下的敌人选择视而不见。
于此同时,众多互联网公司借此机会打造自己的浏览器品牌。
4.新一次浏览器大战:神仙打架
时间来到了2008年,浏览器市场已经不再是微软一家独大了。挑战它的主要是三个:Safari,Opera和FireFox浏览器。
每一家浏览器都为了市场不断优化自身,Safari高雅大气,有着忠实的果粉支持;Opera便捷快速;火狐支持插件,功能众多。它们都已经奠定了用户基础。
IE浏览器的市场占有率下降到了40%。
尽管有所下降,微软依然乐观,坚定自身的操作系统优势可以确保王牌地位,甚至还与火狐浏览器在某一段时间成为了友商。
此时的它丝毫不知新的变革即将到来。
5.被迫放弃
同年,一款名叫Chrome的浏览器横空出世,搭载着WebKit内核,以安全、快速、高兼容性的三大特点迅速获得了人们的认可。
仅仅2年时间,便与IE、FireFox形成三足鼎立的局势。
但是谷歌并不为此感到满足,为了进一步扩大化自己的市场,更是放了个大招:将自己的Chromium项目开源。
所以Chrome背靠谷歌这个大靠山,走了和早期IE很像的路:积极扩大自身影响力,捆绑谷歌和Chrome。只不过这次年轻的谷歌没有选择轻视敌人,它迅速将Chrome推向那个曾经属于IE的王位。
此时的微软才彻底明白过来,敌人比自己想象的还要强大。
懵逼的同时微软接连推出了IE7、IE8,并且IE8也在技术上做了重大变革,从原来的单进程模式切换成了多进程。
2013年,微软做出了最后的针扎,推出IE11,进一步优化界面,加速3D图形渲染,增加引擎核心数。但为时已晚,市场占有率依然持续下降,它古老的界面和差劲的性能伴随着表情包已经深入人心,并且Chrome已经真正成为了第一。
2015年,微软宣布正式放弃IE品牌,不再开发新版本的IE浏览器,搭载着自研EdgeHTML内核的Edge浏览器问世。
同年IE浏览器的市场份额降至2%,这款陪伴了年的IE浏览器,正式远离了我们。
为何走向淘汰
平庸的用户体验
如果你是早期的网上冲浪爱好者,那一定因为各种原因主动被动、亲身体验过它,点进去之后是一个较为简单和复古的页面,和其他主流浏览器形成了一个对比。甚至它的单调可能会让你觉得有点可爱,好像是微软在和你卖萌一样。
“都20xx年了,居然还有这种界面存在”?
以及可能在你工作的关键时刻突然卡着不动,然后响应以下内容:
对它最深刻的印象,除了差劲的体验感,还有就是来自网友的调侃:
市场的挑战和错误的商业判断
但是如果仅仅只是因为短暂的差评,至少借助Windows这个靠山,在拥有广大的用户群体面前,还是有可能快速挽回市场的。
其失败的根本原因在于微软的傲慢、对Web领域错误的商业决策上。而决策的错误也导致IE在Web崛起的黄金五年里毫无作为。
在2014年年初,微软公司CEO纳德拉表示,要将微软业务重心转移至云业务,并且不会延续对IE的研发。此时正是苹果Safari,谷歌Chrome和其他众多浏览器神仙打架的时候,为了发挥优势抢占市场甚至国内的360、百度等浏览器,都在技术和兼容性上下了一番功夫。
于是,在浏览器市场的争夺中失去了领先地位和核心竞争力,取而代之的Chrome浏览器登顶霸榜。
浏览器 | 2022占全球桌面浏览器市场份额的百分比 |
---|---|
Google Chrome | 77.03% |
Safari | 8.87% |
Mozilla Firefox | 7.69% |
Microsoft Edge | 5.83% |
Internet Explorer | 2.15% |
Opera | 2.43% |
1.98% | |
Sogou Explorer | 1.76% |
Yandex | 0.91% |
Brave | 0.05% |
那个熟悉的e字母图标,逐渐被人们抛弃。
浏览器背后的技术
内核引擎架构
浏览器界面是一个用户展示的结果,其核心技术体现是在于用户输入内容到页面响应,也就是「获取请求、响应数据、渲染页面」。而完成这一关键步骤的,是一个叫做浏览器内核的东西。
每个浏览器内核都大不相同,但是主体分为两个部分:渲染引擎(Rendering Engine)和JS引擎。渲染引擎更偏向于数据的导航和渲染,JS引擎就负责解析 Javascript 语言来实现网页的动态效果。
不同的浏览器、即使同一浏览器不同型号可能渲染引擎和JS引擎都不一样。当然不同的浏览器也可能使用相同的内核,IE浏览器的Trident,如国内的360极速浏览器、百度浏览器都在用它。
现在我们最常用的谷歌Chrome浏览器,它的核心架构是这样的:
核心进程
早期的浏览器,都是单进程架构,所以功能也比较简单。
一个进程中有页面线程负责页面渲染和展示,Js线程执行JS代码。
由于是单进程的结构,所以会引发很多问题,比如线程卡死问题,一个线程卡死就可能造成整个浏览器的崩溃。
还有就是数据安全问题,不同tab之间在一个进程内是通过共享内存共享数据的,所以页面线程和JS线程都可以访问到对方的数据。
现代主流浏览器都是使用的多进程结构,并且每个进程的职责都大不相同,以最常用的Chrome为例,它拥有:
一个浏览器主进程:用来响应Chrome浏览器的用户操作请求,包括地址栏、书签和各种按钮,并且也负责协调与其它进程交互工作。
一个GPU进程:负责整个浏览器界面的渲染。
一个网络进程:负责接收网络请求和转发请求。
多个渲染进程:负责页面渲染、运行脚本、事件处理等。
多个插件进程:负责控制处理网站使用的所有插件。
Chrome浏览器主要是使用以下四种进程模型:
Process-per-site-instance:默认情况下为用户访问网站的每个实例创建一个Renderer进程,这样可以确保来自不同站点的页面是独立呈现的,并且对同一站点的多次访问也是进程间彼此隔离的。简单来说就是访问不同站点和同一站点的不同页面都会创建新的进程。 Process-per-site:同一个站点使用同一进程。 Process-per-tab:一个tab里的所有站点使用一个进程。 single-process:让浏览器引擎和渲染引擎共用一个进程。
Chrome默认使用的是Process-per-site-instance。优点是多进程模式下速度快,并且因为tab和tab之间的信息都是相互隔离的,所以互不影响,实现安全隔离。缺点也非常明显,太!占!内!存!我目前开了两个浏览器页面,每个页面上有多个tab,这是目前电脑的内存占用情况:
是不是知道你电脑总是内存不足的原因了?
为了挽救市场,IE8之后浏览器也改为了多进程模式,性能提升了许多。但是此时Chrome、Safari已经基于多进程的成熟技术上展现最极致的用户体验了,极速渲染、高页面FPS和刷新率、自定义插件、开发者模式等功能都相应而出。
IE慢吗?本质上不算慢,只是别人越来越快。
翘首企足的Web世界
在新兴的Web时代,我们追求性能,追求体验,更兼容、更安全。
请不要忘记,曾经那个功能简单,风格复古,披着相似外衣停留在Windows桌面二十余年的IE。它贯穿了一个时代,一个日新月异的时代,一个充满竞争的时代,最终在前进的路程中败下阵来。
一粒破土而出的种子,是一颗参天大树的延续。
Edge作为它的「种子」,将代表微软走向下一个二十年。
关于浏览器之间的竞争和迭代从未停止,作为广大用户群体的我们应期盼未来,拥抱新的改变。
下一个时代的王者是谁,Chrome么?它会被谁超越?