相信很多小伙伴們?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里:
chromium內(nèi)核的瀏覽器存放位置略有不同:
小結(jié)
以上就是關(guān)于瀏覽器內(nèi)核的介紹,相信看完這篇文章之后各位小伙伴應(yīng)該已經(jīng)了解了瀏覽器內(nèi)核是干什么的了吧?
不了解,沒(méi)關(guān)系,來(lái)前端開發(fā)課程,學(xué)習(xí)更多前端知識(shí)!