App下載

瀏覽器的心臟——什么是瀏覽器的內(nèi)核?

猿友 2021-06-25 10:57:16 瀏覽數(shù) (5381)
反饋

相信很多小伙伴們?cè)趯W(xué)習(xí)前端后端或者web測(cè)試的時(shí)候總會(huì)聽到瀏覽器內(nèi)核這一稱謂。但是很多時(shí)候我們只是知道有內(nèi)核這個(gè)東西,并不知道瀏覽器內(nèi)核是干什么的,在什么時(shí)候需要使用到。接下來(lái)這篇文章,小編就著重介紹一下瀏覽器內(nèi)核。

什么是主流瀏覽器?

提到主流瀏覽器,很多小伙伴可能會(huì)想起360啊,qq啊uc等一眾國(guó)產(chǎn)瀏覽器。其實(shí),他們都不算主流瀏覽器,因?yàn)樗麄兌紱](méi)有自己的內(nèi)核(他們其實(shí)是別人的瀏覽器內(nèi)核套上自己的一層外殼)。那么哪些瀏覽器才能算主流瀏覽器呢?主要有以下幾種:谷歌的Chrome,蘋果的Safari,微軟的IE和edge,火狐的Firefox和Opera的Opera瀏覽器。為什么是他們呢?因?yàn)樗麄兌加凶约簩?duì)應(yīng)的內(nèi)核。

 瀏覽器  對(duì)應(yīng)內(nèi)核
 IE  trident內(nèi)核(或者mshtml)
 Chrome  blink內(nèi)核(或者chromium)
 火狐瀏覽器 gecko內(nèi)核 
 Edge  最新的版本使用chromium內(nèi)核
 Opera presto(已廢棄,最新版也是用blink) 
 Safari webkit 

什么是瀏覽器內(nèi)核?

接下來(lái)就是本篇文章的重點(diǎn)之一——什么是瀏覽器內(nèi)核。瀏覽器內(nèi)核其實(shí)就是瀏覽器的渲染引擎,它的作用就是渲染html頁(yè)面。它的作用有點(diǎn)類似xml解析器。它通過(guò)讀取html和css文件,獲得一個(gè)個(gè)元素,然后使用渲染引擎將一個(gè)個(gè)元素按照要求展示在瀏覽器的窗口內(nèi)。這就是瀏覽器需要做的工作。

瀏覽器內(nèi)核的歷史

ie作為最古老的瀏覽器之一,他的trident內(nèi)核是自行開發(fā)的(早期是基于Mosaic,但是后期經(jīng)歷了各種魔改)。

edge作為ie的后繼者,在剛推出時(shí)他采用edgeHTML內(nèi)核進(jìn)行渲染,這是一款基于trident進(jìn)行開發(fā)的內(nèi)核。但是最后edge還是轉(zhuǎn)向使用chromium了。

Safari為了跟其它瀏覽器搶份額,和谷歌聯(lián)手開發(fā)了webkit內(nèi)核,早期的谷歌瀏覽器也是使用webkit內(nèi)核的。

Chrome后來(lái)跟Opera合作,在webkit的基礎(chǔ)上開發(fā)了blink內(nèi)核。

Opera使用presto內(nèi)核也是自行開發(fā)的,該內(nèi)核的渲染速度優(yōu)化到了極致。但是最后還是被Opera廢棄。

火狐瀏覽器使用自家的gecko。

2022年6月15日,微軟將停止ie的支持,意味著trident內(nèi)核使命的終結(jié),而edge,Opera,Chrome都使用谷歌的內(nèi)核,而谷歌內(nèi)核和webkit內(nèi)核屬于同一分支,到時(shí)候市場(chǎng)內(nèi)核只會(huì)存在gecko和webkit系內(nèi)核。網(wǎng)頁(yè)標(biāo)準(zhǔn)將趨于統(tǒng)一。

為什么要了解這些?

作為前端開發(fā)者,了解瀏覽器內(nèi)核對(duì)于頁(yè)面開發(fā)至關(guān)重要,不同的瀏覽器的渲染方式是不同的,而且不同瀏覽器對(duì)于W3C的標(biāo)準(zhǔn)支持也是不同的。有些比較新的標(biāo)準(zhǔn)部分瀏覽器是不支持的,而且這些內(nèi)核往往有一些“方言”。這些方言被稱為瀏覽器特性或者拓展支持。如果想讓你的頁(yè)面有更好的展示效果,使用這些瀏覽器特性是必須的。

作為測(cè)試開發(fā)者,你必須了解web頁(yè)面是否對(duì)瀏覽器進(jìn)行兼容,而對(duì)于使用selenium的自動(dòng)化測(cè)試人員來(lái)說(shuō),使用不同的瀏覽器需要使用不同的webdriver。

怎么查看瀏覽器內(nèi)核

一般網(wǎng)上都能搜索到該款瀏覽器對(duì)應(yīng)的內(nèi)核,后端開發(fā)工作者也可以通過(guò)獲取請(qǐng)求中的user-agent來(lái)知曉瀏覽器的類型(不是瀏覽器的user agent 服務(wù)器獲取的ua是可以對(duì)應(yīng)到瀏覽器的版本的)。

火狐瀏覽器將版本信息放在user agent里:

火狐的user-agent

chromium內(nèi)核的瀏覽器存放位置略有不同:

chromium內(nèi)核的請(qǐng)求頭

小結(jié)

以上就是關(guān)于瀏覽器內(nèi)核的介紹,相信看完這篇文章之后各位小伙伴應(yīng)該已經(jīng)了解了瀏覽器內(nèi)核是干什么的了吧?

不了解,沒(méi)關(guān)系,來(lái)前端開發(fā)課程,學(xué)習(xí)更多前端知識(shí)!


0 人點(diǎn)贊