了解了浏览器内核有什么用(——浏览器内核了解一下)

首页教程更新时间:2023-06-11 01:47:29

了解了浏览器内核有什么用,——浏览器内核了解一下(1)

一、什么是浏览器内核

大家上网都离不开浏览器浏览网页,而一个浏览器最重要的部分就是:

浏览器内核

英文名叫 “Rendering Engine”,直译过来叫做“渲染引擎”,不过我们也常称其为“排版引擎”。常见的浏览器内核有很多个,如 Gecko、Trident、WebKit、Blink 等等,待会下文都会提到。它的作用负责 HTML、CSS、图片等静态资源的渲染,正因为每家的内核对网页代码的解释有不同的地方,才会出现同一个页面在不同内核的浏览器下显示的不一样,这也是前端工程师需要去做的一项工作,去兼容各种浏览器达到一致的外观和功能。

比如同样的一段代码(这里是一个 <audio/> 标签,表示插入一段音频),chrome 跟 Safari 的展现的播放器长的完全不一样。

<audio src="//img.down10s.com//i/horse.ogg" controls="controls">

Your browser does not support the audio element.

</audio>

了解了浏览器内核有什么用,——浏览器内核了解一下(2)

chrome

了解了浏览器内核有什么用,——浏览器内核了解一下(3)

safari

网页中除了静态的排版,还有例如动效的展示,负责写这些动效的代码语言叫做 javascript,所以浏览器中还会包含JS 引擎专门负责解析 javascript。

早期的 javascript 并不复杂,所以浏览器内核 = 渲染引擎 JS 引擎

后来网页越来越复杂,JS 引擎独立出来,遂:

浏览器内核 = 渲染引擎

所以我们下文所提到的浏览器内核统统指的是渲染引擎

二、常见的几种 PC 浏览器内核

1、Trident —— IE

微软当年为了抵抗当时主流的网景浏览器(Netscape Navigator),立马收购另外一家浏览器公司 Mosaic,基于它的内核修改成了新的 Trident,开发出了 Internet Explorer,而且微软为了推销 IE,强制捆绑在了自家的操作系统中,从此网景浏览器日渐式微。

了解了浏览器内核有什么用,——浏览器内核了解一下(4)

过了很多年,2015 年 3 月 17 日,当 Window10 发布时,微软的内置浏览器改为了 Edge,Edge 最显著的特点就是新内核 EdgeHTML这使 Internet Explorer 11 成为最后一个版本。

这里还有个小插曲,当年微软还为「Internet Explorer for Mac」开发了一套新的排版引擎,叫 Tasman。但微软自 04 年就停止了对 Mac版 IE 的开发。

注1:IE 和 Edge 浏览器的渲染引擎不一样,但是 JS 引擎都一样,叫 Chakra

注2:国内的双核浏览器其中一核便是 Trident,美其名曰 “兼容模式”。

2、Gecko —— Firefox

了解了浏览器内核有什么用,——浏览器内核了解一下(5)

Gecko浏览器引擎最早是网景开发的。但上面刚说到,微软的 IE 阻击网景浏览器的故事,最终以时代华纳解散了网景公司收场,大部分开发者被解雇。于是 Mozilla 基金会亦在当天成立,继续推动着 Gecko 的发展

而微软的 Trident 内核长期一家独大,很长时间都不更新,这导致了两个后果:

(1)遗留了大量的 BUG 和安全性的漏洞

(2)跟 W3C 标准的脱节【 W3C(万维网联盟)是负责制定网页标准的国际机构】

于是,针对 IE,Mozilla 基金会推出了自己的浏览器 Firefox,搭载的 Gecko 内核也祭出了自己的*手锏——开源,通过源代码的开放,鼓励全世界的开发者加入进来,解决了安全和速度问题。尤其是热代码加速这个全新思路,为 Firefox 打开了胜利之门。从刚开始被微软取笑为“臭狐狸” Firefox 卷头重来,到了跟 IE 形成分庭抗礼的局势

不过,成也萧何败也萧何。Gecko 再次犯了当年的错误——贪大求全,将邮件组、新闻组、聊天等流行应用都打包进了 Firefox,导致内存占用问题。此外,Firefox 对 JavaScript 的支持并不好,反应迟钝也开始被频频抨击。这就给接下来上场的角色留下了超越的契机。

3、WebKit —— Safari

恕我无知,先前一直以为 WebKit 的谷歌开发的,没想到是苹果爸爸旗下的,即苹果电脑中自带的 Safari 浏览器,内核使用的就是大名鼎鼎的 WebKit

了解了浏览器内核有什么用,——浏览器内核了解一下(6)

WebKit 内核是苹果基于 KDE(Linux 桌面系统)的 KHTML 引擎开发出来的,可以说 WebKit 是 KHTML 的一个开源的分支。当年苹果在比较了 Gecko 和 KHTML 后,选择了后者来做引擎开发,是因为相比 Gecko,KHTML 拥有清晰的源码结构和极快的渲染速度,也实现了 JavaScript 脚本的快速解释器调用。

WebKit 可以说是苹果公司给开源世界的一大贡献,基于此开源引擎,又衍生了多个 WebKit 分支,如下面要介绍的 Chrome 的浏览器引擎。

注:其实 WebKit 本身由两个引擎构成的,一个是渲染引擎WebCore,基于 KDE 的KHTML,另一个则是 JS 引擎JSCore,基于 KDE 的KJS

4、Chromium —— Chrome

谷歌 Chrome浏览器从08年创始至今一直使用苹果公司的WebKit 作为浏览器内核,隶属谷歌旗下的 Chromium 开源项目去做维护。Chromium 把 WebKit 的代码梳理得可读性和性能提高很多。

了解了浏览器内核有什么用,——浏览器内核了解一下(7)

注意,Chromium 是灰色而 Chrome 是彩色

每次新功能会先在 Chromium 上实现,待验证后才会应用在 Chrome上。Chromium 一天最多可以更新十几二十个版本,实验性的新特性都会现在这里放出,但是 Chromium 本身其实并不稳定;而 Chrome 总共有四个更新分支:Canary、Dev、Beta、Stable,稳定性依次增强。

Chromium 问世后,带动了国产浏览器行业的发展。一些基于 chromium 的单核,双核浏览器如雨后春笋般拔地而起,例如:搜狗、360、QQ 浏览器等等,无一不是套着不同的外壳用着相同的内核。

2010年,由于苹果推出的新的 WebKit2, 与 Chromium 的沙箱设计存在冲突,所以 Chromium 一直停留在 WebKit,并使用移植的方式来实现和主线 WebKit2 的对接。这增加了 Chromium 的复杂性,且在一定程度上影响了 Chromium 的架构移植工作。

基于以上原因,2013年4月3日,谷歌在 Chromium Blog 上发表博客,Google 决定从 WebKit 衍生出自己的引擎(后由 Google 和 Opera Software 共同研发)自立门户,即在 WebKit 代码的基础上研发更加快速和简约的渲染引擎,并逐步脱离 WebKit 的影响,创造一个完全独立的 Blink 内核,同样隶属于 Chromium开源项目下。这样以来,唯一一条维系 Google 和苹果之间技术关系的纽带就这样被切断了。

界面简洁、加载快速、数据安全等这些特点让 Chrome 越来越受喜欢,甚至好过于苹果。

所以现在 Chrome 是全世界市场占有率最高的浏览器。

注1:Chrome 的 JS 引擎叫 V8,也是大名鼎鼎

注2:国内的双核浏览器其中一核便是 Chromium(Blink),美其名曰 “极速模式”。

国产红芯就是基于 Chromium(Blink)的基础上,套了个壳,所以称为自主研发真的等于诈骗了。

了解了浏览器内核有什么用,——浏览器内核了解一下(8)

不过凭心而论,研发浏览器的内核难度非常大,不亚于捣鼓出半个操作系统,所以上面提到的几大公司其实也没有完全从零开始,都是基于之前成熟的开源引擎修改而来。哪怕这样,据说 Google 公司 对 Chrome 的研发也投入了1000个工程师,持续 N 年,耗费了数百亿。

5、Presto —— Opera

了解了浏览器内核有什么用,——浏览器内核了解一下(9)

Presto 也是 Opera 浏览器开发并服役近十年的老牌内核了。

但是前文提到,在 Chrome 于 2013 年推出 Blink 之后,Opera 也一同参与开发并牢牢跟进,于是 Opera 浏览器从 Presto 改为了 Blink

二、常见的几种移动端浏览器内核

由于智能移动端发展历史相对于 PC 很短,所以 IE、Opera 这些元老级浏览器内核很少见,移动端浏览器大都是从 Webkit 开始的

1、手机 OS 内置浏览器

(1)iPhone 和 iPad 等苹果 iOS 平台上是自家的 WebKit / WebKit2

同时,IOS 提供了WKWebView组件给第三方 APP 使用,可以实现浏览器功能。

(2)Android 4.4 之前的 Android 系统浏览器内核是 WebKit,Android 4.4 系统浏览器切换到了Chromium / Blink

同时,Android 提供了 Webview 组件给第三方 APP 使用,可以实现浏览器功能。

(3)Windows Phone 系统浏览器内核是 Trident。

2、微信内置浏览器

Android 的微信是腾讯基于 Webkit 开发的 X5 内核

IOS 中 的微信因为系统的限制,只能使用系统自带的 WKWebView 组件

3、第三方浏览器 App

大多都是基于 webkit 做了二次开发,如:

UC 是 U3内核

qq 浏览器是 X5内核


参考资料

[全面了解浏览器(内核)发展史] https://www.jianshu.com/p/db1b230e3415

[维基百科]

,
图文教程
相关文章
热门专题
推荐软件
奇热小说
奇热小说
下载
QQ2019手机版
QQ2019手机版
下载
王者荣耀
王者荣耀
下载
百度浏览器迷你版
百度浏览器迷你版
下载
2345浏览器手机版
2345浏览器手机版
下载
网易邮箱
网易邮箱
下载
爱奇艺
爱奇艺
下载
网易云音乐
网易云音乐
下载
WPSOffice
WPSOffice
下载
优酷
优酷
下载
谷歌浏览器(Chrome)
谷歌浏览器(Chrome)
下载
迅雷看看播放器
迅雷看看播放器
下载
UC浏览器
UC浏览器
下载
QQ音乐
QQ音乐
下载
阿里旺旺买家版v9.12.10C官方版
阿里旺旺买家版v9.12.10C官方版
下载
360安全卫士v12.1官方版
360安全卫士v12.1官方版
下载
猜你喜欢
暴走火柴人
暴走火柴人
下载
顶尖车手2012
顶尖车手2012
下载
全民来斗图红包版
全民来斗图红包版
下载
野生农场
野生农场
下载
ANSYSLumerical(高性能仿真设计工具)v2020a免费版
ANSYSLumerical(高性能仿真设计工具)v2020a免费版
下载
火箭汽车涡轮足球
火箭汽车涡轮足球
下载
见机行事
见机行事
下载
老K红中麻将电脑版
老K红中麻将电脑版
下载
wlidnsp.dll
wlidnsp.dll
下载
豹系男友的千层套路
豹系男友的千层套路
下载
刷宝兼职
刷宝兼职
下载
多灵慧眼v1.0.1
多灵慧眼v1.0.1
下载
耐材专家
耐材专家
下载
网信管家
网信管家
下载
彩虹QQ显IP2.7
彩虹QQ显IP2.7
下载
金秀融媒
金秀融媒
下载