IE瀏覽器停止服務(wù),曾經(jīng)的王者為何退役?解析瀏覽器背后的技術(shù)是什么?
前言
隨著Windows的官宣,ie瀏覽器將于6月16日正式退役。
那個(gè)曾幾何時(shí)的瀏覽器之王,經(jīng)歷一次又一次操作系統(tǒng)的迭代,直至新興瀏覽器的出現(xiàn)后淪為瀏覽器鄙視鏈的最后一層,在嘆息與嘲笑聲中跌出神壇,經(jīng)歷了大起大落的二十年,終于要說再見了。

歷史的演進(jìn)
1.少年被寄予厚望
1995年,微軟正處于勢不可擋的時(shí)期,而瀏覽器的市場主要來源于網(wǎng)景公司,一款名為導(dǎo)航者的瀏覽器一統(tǒng)天下。
為了擁有自己的瀏覽器,微軟獲購買了望遠(yuǎn)鏡公司的Mosaic瀏覽器版權(quán),在經(jīng)過魔改后,微軟也擁有了屬于自己的瀏覽器,并取名為Internet Explorer。此時(shí)它主要是被應(yīng)用于大學(xué)和研究機(jī)構(gòu)之間通過FTP實(shí)現(xiàn)文件共享。
幾個(gè)月后,微軟又發(fā)布了IE2,這個(gè)版本的IE才真正進(jìn)入了人們的視野。它直接復(fù)制了導(dǎo)航者的一大部分功能,如導(dǎo)入書簽,支持超文本標(biāo)記語言特性等,迅速積累了第一批用戶。為了實(shí)現(xiàn)大規(guī)模商用,在第二年IE3就接緊發(fā)布。拋棄了原先使用的Spyglass源代碼,添加了一些新技術(shù),支持ActiveX、和128位加密等。
微軟的目的,是將IE打造成瀏覽器界的Windows。
2.第一次瀏覽器大戰(zhàn):登上王位
IE通過頻繁增添新功能的方式迅速挖掘到了市場。但是和網(wǎng)景依然是你追我趕,始終沒能拉開差距。
此時(shí)敏銳的微軟借助操作系統(tǒng)上的核心競爭力,馬上決定讓IE成為Windows系統(tǒng)的默認(rèn)瀏覽器。也就是說,只要你使用了微軟的操作系統(tǒng),那么默認(rèn)瀏覽器就是IE。
借助這種捆綁銷售的方式,微軟取得了巨大成功。僅又一年后的1997,微軟就發(fā)布了IE4.0,此時(shí)它已經(jīng)握有80%的市場占有率。
很多人覺得IE沒有技術(shù),其實(shí)在早期IE是有技術(shù)的,并且是當(dāng)時(shí)絕對領(lǐng)先的技術(shù)。IE4.0采用了Trident渲染引擎,它能夠借助代碼讓頁面實(shí)時(shí)變化,也就是最早的動(dòng)態(tài)頁面,放在當(dāng)時(shí)可以吊打一眾瀏覽器。
通過先進(jìn)的技術(shù)和背后的靠山,2003年,它的市場占有率達(dá)到了驚人的95%,年僅8歲的它,正式稱王。為了迎合它,蘋果甚至將macOS的默認(rèn)瀏覽器都設(shè)置為IE。
不夸張地說,它壟斷了當(dāng)時(shí)Web瀏覽器市場。
3.毫無作為的5年
也是由于這種壟斷地位,讓微軟覺得互聯(lián)網(wǎng)似乎已經(jīng)沒有對手了。于是在IE6.0發(fā)布之后,微軟就解散了研發(fā)團(tuán)隊(duì)。并且在之后的五年時(shí)間里面,都未正視過IE的維護(hù)和優(yōu)化。它的技術(shù)依然停留在2003年,那個(gè)單進(jìn)程模式。
隨之降臨的便是越來越多的問題,橫飛的木馬和漏洞,動(dòng)不動(dòng)就會卡死的網(wǎng)頁,極慢的啟動(dòng)速度,以及讓你隨時(shí)可能崩潰的心態(tài)。

這五年,是IE技術(shù)和市場的停滯,但也是Web高速發(fā)展的時(shí)期。微軟犯了傲慢的錯(cuò)誤,卻依然享受于作為老大占領(lǐng)市場的快感之中,對瀕臨城下的敵人選擇視而不見。
與此同時(shí),眾多互聯(lián)網(wǎng)公司借此機(jī)會打造自己的瀏覽器品牌。
4.新一次瀏覽器大戰(zhàn):神仙打架
時(shí)間來到了2008年,瀏覽器市場已經(jīng)不再是微軟一家獨(dú)大了。挑戰(zhàn)它的主要是三個(gè):Safari,Opera和FireFox瀏覽器。
每一家瀏覽器都為了市場不斷優(yōu)化自身,Safari高雅大氣,有著忠實(shí)的果粉支持;Opera便捷快速;火狐支持插件,功能眾多。它們都已經(jīng)奠定了用戶基礎(chǔ)。
IE瀏覽器的市場占有率下降到了40%。
盡管有所下降,微軟依然樂觀,堅(jiān)定自身的操作系統(tǒng)優(yōu)勢可以確保王牌地位,甚至還與火狐瀏覽器在某一段時(shí)間成為了友商。
此時(shí)的它絲毫不知新的變革即將到來。
5.被迫放棄
同年,一款名叫Chrome的瀏覽器橫空出世,搭載著WebKit內(nèi)核,以安全、快速、高兼容性的三大特點(diǎn)迅速獲得了人們的認(rèn)可。
僅僅2年時(shí)間,便與IE、FireFox形成三足鼎立的局勢。
但是谷歌并不為此感到滿足,為了進(jìn)一步擴(kuò)大化自己的市場,更是放了個(gè)大招:將自己的Chromium項(xiàng)目開源。
所以Chrome背靠谷歌這個(gè)大靠山,走了和早期IE很像的路:積極擴(kuò)大自身影響力,捆綁谷歌和Chrome。只不過這次年輕的谷歌沒有選擇輕視敵人,它迅速將Chrome推向那個(gè)曾經(jīng)屬于IE的王位。
此時(shí)的微軟才徹底明白過來,敵人比自己想象的還要強(qiáng)大。
懵逼的同時(shí)微軟接連推出了IE7、IE8,并且IE8也在技術(shù)上做了重大變革,從原來的單進(jìn)程模式切換成了多進(jìn)程。
2013年,微軟做出了最后的掙扎,推出IE11,進(jìn)一步優(yōu)化界面,加速3D圖形渲染,增加引擎核心數(shù)。但為時(shí)已晚,市場占有率依然持續(xù)下降,它古老的界面和差勁的性能伴隨著表情包已經(jīng)深入人心,并且Chrome已經(jīng)真正成為了第一。
2015年,微軟宣布正式放棄IE品牌,不再開發(fā)新版本的IE瀏覽器,搭載著自研EdgeHTML內(nèi)核的Edge瀏覽器問世。
同年IE瀏覽器的市場份額降至2%,這款陪伴了年的IE瀏覽器,正式遠(yuǎn)離了我們。
為何走向淘汰
平庸的用戶體驗(yàn)
如果你是早期的網(wǎng)上沖浪愛好者,那一定因?yàn)楦鞣N原因主動(dòng)被動(dòng)、親身體驗(yàn)過它,點(diǎn)進(jìn)去之后是一個(gè)較為簡單和復(fù)古的頁面,和其他主流瀏覽器形成了一個(gè)對比。甚至它的單調(diào)可能會讓你覺得有點(diǎn)可愛,好像是微軟在和你賣萌一樣。
“都20xx年了,居然還有這種界面存在”?

以及可能在你工作的關(guān)鍵時(shí)刻突然卡著不動(dòng),然后響應(yīng)以下內(nèi)容:


對它最深刻的印象,除了差勁的體驗(yàn)感,還有就是來自網(wǎng)友的調(diào)侃:


市場的挑戰(zhàn)和錯(cuò)誤的商業(yè)判斷
但是如果僅僅只是因?yàn)槎虝旱牟钤u,至少借助Windows這個(gè)靠山,在擁有廣大的用戶群體面前,還是有可能快速挽回市場的。
其失敗的根本原因在于微軟的傲慢、對Web領(lǐng)域錯(cuò)誤的商業(yè)決策上。而決策的錯(cuò)誤也導(dǎo)致IE在Web崛起的黃金五年里毫無作為。
在2014年年初,微軟公司CEO納德拉表示,要將微軟業(yè)務(wù)重心轉(zhuǎn)移至云業(yè)務(wù),并且不會延續(xù)對IE的研發(fā)。此時(shí)正是蘋果Safari,谷歌Chrome和其他眾多瀏覽器神仙打架的時(shí)候,為了發(fā)揮優(yōu)勢搶占市場甚至國內(nèi)的360、百度等瀏覽器,都在技術(shù)和兼容性上下了一番功夫。
于是,在瀏覽器市場的爭奪中失去了領(lǐng)先地位和核心競爭力,取而代之的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% |
那個(gè)熟悉的e字母圖標(biāo),逐漸被人們拋棄。
瀏覽器背后的技術(shù)
內(nèi)核引擎架構(gòu)
瀏覽器界面是一個(gè)用戶展示的結(jié)果,其核心技術(shù)體現(xiàn)是在于用戶輸入內(nèi)容到頁面響應(yīng),也就是「獲取請求、響應(yīng)數(shù)據(jù)、渲染頁面」。而完成這一關(guān)鍵步驟的,是一個(gè)叫做瀏覽器內(nèi)核的東西。
每個(gè)瀏覽器內(nèi)核都大不相同,但是主體分為兩個(gè)部分:渲染引擎(Rendering Engine)和JS引擎。渲染引擎更偏向于數(shù)據(jù)的導(dǎo)航和渲染,JS引擎就負(fù)責(zé)解析 Javascript 語言來實(shí)現(xiàn)網(wǎng)頁的動(dòng)態(tài)效果。
不同的瀏覽器、即使同一瀏覽器不同型號可能渲染引擎和JS引擎都不一樣。當(dāng)然不同的瀏覽器也可能使用相同的內(nèi)核,IE瀏覽器的Trident,如國內(nèi)的360極速瀏覽器、百度瀏覽器都在用它。

現(xiàn)在我們最常用的谷歌Chrome瀏覽器,它的核心架構(gòu)是這樣的:

用戶接口接收用戶請求,通過網(wǎng)絡(luò)向?yàn)g覽器組件轉(zhuǎn)發(fā)請求,渲染引擎以8kb為單位接收數(shù)據(jù)信息,做數(shù)據(jù)導(dǎo)航,再交給V8和libXML解析,最后逐步將內(nèi)容顯示給用戶。
核心進(jìn)程
早期的瀏覽器,都是單進(jìn)程架構(gòu),所以功能也比較簡單。
一個(gè)進(jìn)程中有頁面線程負(fù)責(zé)頁面渲染和展示,Js線程執(zhí)行JS代碼。
由于是單進(jìn)程的結(jié)構(gòu),所以會引發(fā)很多問題,比如線程卡死問題,一個(gè)線程卡死就可能造成整個(gè)瀏覽器的崩潰。
還有就是數(shù)據(jù)安全問題,不同tab之間在一個(gè)進(jìn)程內(nèi)是通過共享內(nèi)存共享數(shù)據(jù)的,所以頁面線程和JS線程都可以訪問到對方的數(shù)據(jù)。
現(xiàn)代主流瀏覽器都是使用的多進(jìn)程結(jié)構(gòu),并且每個(gè)進(jìn)程的職責(zé)都大不相同,以最常用的Chrome為例,它擁有:
? 一個(gè)瀏覽器主進(jìn)程:用來響應(yīng)Chrome瀏覽器的用戶操作請求,包括地址欄、書簽和各種按鈕,并且也負(fù)責(zé)協(xié)調(diào)與其它進(jìn)程交互工作。
? 一個(gè)GPU進(jìn)程:負(fù)責(zé)整個(gè)瀏覽器界面的渲染。
? 一個(gè)網(wǎng)絡(luò)進(jìn)程:負(fù)責(zé)接收網(wǎng)絡(luò)請求和轉(zhuǎn)發(fā)請求。
? 多個(gè)渲染進(jìn)程:負(fù)責(zé)頁面渲染、運(yùn)行腳本、事件處理等。
? 多個(gè)插件進(jìn)程:負(fù)責(zé)控制處理網(wǎng)站使用的所有插件。

Chrome瀏覽器主要是使用以下四種進(jìn)程模型:
? Process-per-site-instance:默認(rèn)情況下為用戶訪問網(wǎng)站的每個(gè)實(shí)例創(chuàng)建一個(gè)Renderer進(jìn)程,這樣可以確保來自不同站點(diǎn)的頁面是獨(dú)立呈現(xiàn)的,并且對同一站點(diǎn)的多次訪問也是進(jìn)程間彼此隔離的。簡單來說就是訪問不同站點(diǎn)和同一站點(diǎn)的不同頁面都會創(chuàng)建新的進(jìn)程。
? Process-per-site:同一個(gè)站點(diǎn)使用同一進(jìn)程。
? Process-per-tab:一個(gè)tab里的所有站點(diǎn)使用一個(gè)進(jìn)程。
? single-process:讓瀏覽器引擎和渲染引擎共用一個(gè)進(jìn)程。
Chrome默認(rèn)使用的是Process-per-site-instance。優(yōu)點(diǎn)是多進(jìn)程模式下速度快,并且因?yàn)閠ab和tab之間的信息都是相互隔離的,所以互不影響,實(shí)現(xiàn)安全隔離。缺點(diǎn)也非常明顯,太!占!內(nèi)!存!我目前開了兩個(gè)瀏覽器頁面,每個(gè)頁面上有多個(gè)tab,這是目前電腦的內(nèi)存占用情況:

是不是知道你電腦總是內(nèi)存不足的原因了?
為了挽救市場,IE8之后瀏覽器也改為了多進(jìn)程模式,性能提升了許多。但是此時(shí)Chrome、Safari已經(jīng)基于多進(jìn)程的成熟技術(shù)上展現(xiàn)最極致的用戶體驗(yàn)了,極速渲染、高頁面FPS和刷新率、自定義插件、開發(fā)者模式等功能都相應(yīng)而出。
IE慢嗎?本質(zhì)上不算慢,只是別人越來越快。
翹首企足的Web世界
在新興的Web時(shí)代,我們追求性能,追求體驗(yàn),更兼容、更安全。
請不要忘記,曾經(jīng)那個(gè)功能簡單,風(fēng)格復(fù)古,披著相似外衣停留在Windows桌面二十余年的IE。它貫穿了一個(gè)時(shí)代,一個(gè)日新月異的時(shí)代,一個(gè)充滿競爭的時(shí)代,最終在前進(jìn)的路程中敗下陣來。
一粒破土而出的種子,是一顆參天大樹的延續(xù)。
Edge作為它的「種子」,將代表微軟走向下一個(gè)二十年。

關(guān)于瀏覽器之間的競爭和迭代從未停止,作為廣大用戶群體的我們應(yīng)期盼未來,擁抱新的改變。
下一個(gè)時(shí)代的王者是誰,Chrome么?它會被誰超越?
