相信很多小伙伴們在學(xué)習(xí)前端后端或者web測試的時候總會聽到瀏覽器內(nèi)核這一稱謂。但是很多時候我們只是知道有內(nèi)核這個東西,并不知道瀏覽器內(nèi)核是干什么的,在什么時候需要使用到。接下來這篇文章,小編就著重介紹一下瀏覽器內(nèi)核。
什么是主流瀏覽器?
提到主流瀏覽器,很多小伙伴可能會想起360啊,qq啊uc等一眾國產(chǎn)瀏覽器。其實,他們都不算主流瀏覽器,因為他們都沒有自己的內(nèi)核(他們其實是別人的瀏覽器內(nèi)核套上自己的一層外殼)。那么哪些瀏覽器才能算主流瀏覽器呢?主要有以下幾種:谷歌的Chrome,蘋果的Safari,微軟的IE和edge,火狐的Firefox和Opera的Opera瀏覽器。為什么是他們呢?因為他們都有自己對應(yīng)的內(nèi)核。
瀏覽器 | 對應(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)核?
接下來就是本篇文章的重點之一——什么是瀏覽器內(nèi)核。瀏覽器內(nèi)核其實就是瀏覽器的渲染引擎,它的作用就是渲染html頁面。它的作用有點類似xml解析器。它通過讀取html和css文件,獲得一個個元素,然后使用渲染引擎將一個個元素按照要求展示在瀏覽器的窗口內(nèi)。這就是瀏覽器需要做的工作。
瀏覽器內(nèi)核的歷史
ie作為最古老的瀏覽器之一,他的trident內(nèi)核是自行開發(fā)的(早期是基于Mosaic,但是后期經(jīng)歷了各種魔改)。
edge作為ie的后繼者,在剛推出時他采用edgeHTML內(nèi)核進行渲染,這是一款基于trident進行開發(fā)的內(nèi)核。但是最后edge還是轉(zhuǎn)向使用chromium了。
Safari為了跟其它瀏覽器搶份額,和谷歌聯(lián)手開發(fā)了webkit內(nèi)核,早期的谷歌瀏覽器也是使用webkit內(nèi)核的。
Chrome后來跟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)核屬于同一分支,到時候市場內(nèi)核只會存在gecko和webkit系內(nèi)核。網(wǎng)頁標(biāo)準(zhǔn)將趨于統(tǒng)一。
為什么要了解這些?
作為前端開發(fā)者,了解瀏覽器內(nèi)核對于頁面開發(fā)至關(guān)重要,不同的瀏覽器的渲染方式是不同的,而且不同瀏覽器對于W3C的標(biāo)準(zhǔn)支持也是不同的。有些比較新的標(biāo)準(zhǔn)部分瀏覽器是不支持的,而且這些內(nèi)核往往有一些“方言”。這些方言被稱為瀏覽器特性或者拓展支持。如果想讓你的頁面有更好的展示效果,使用這些瀏覽器特性是必須的。
作為測試開發(fā)者,你必須了解web頁面是否對瀏覽器進行兼容,而對于使用selenium的自動化測試人員來說,使用不同的瀏覽器需要使用不同的webdriver。
怎么查看瀏覽器內(nèi)核
一般網(wǎng)上都能搜索到該款瀏覽器對應(yīng)的內(nèi)核,后端開發(fā)工作者也可以通過獲取請求中的user-agent來知曉瀏覽器的類型(不是瀏覽器的user agent 服務(wù)器獲取的ua是可以對應(yīng)到瀏覽器的版本的)。
火狐瀏覽器將版本信息放在user agent里:
chromium內(nèi)核的瀏覽器存放位置略有不同:
小結(jié)
以上就是關(guān)于瀏覽器內(nèi)核的介紹,相信看完這篇文章之后各位小伙伴應(yīng)該已經(jīng)了解了瀏覽器內(nèi)核是干什么的了吧?
不了解,沒關(guān)系,來前端開發(fā)課程,學(xué)習(xí)更多前端知識!