浏览器内核大揭秘

合集下载

浏览器内核详解

浏览器内核详解

一:Trident内核Trident(又称为MSHTML、IE内核),是微软的视窗操作系统(Windows)搭载的网页浏览器—Internet Explorer的排版引擎的名称,它的第一个版本随着1997年10月Internet Explorer第四版发布,之后不断的加入新的技术并随着新版本的InternetExplorer发布。

在Internet Explorer第七版中,微软对Trident排版引擎做了的重大的变动,除了加入新的技术之外,并增加对网页标准的支持。

尽管这些变动已经在相当大的程度上落后了其它的排版引擎,如Gecko、WebCore、KHTML、Webkit及Presto。

Trident引擎被设计成一个软件组件(模块),使得其他软件开发人员很容易的将网页浏览的功能加到他们自行开发的应用程序里。

微软提出了一个称为组件对象模型(COM)的软件接口架构。

供其它支持的组件对象模型开发环境的应用程序(如:C++及.NET)访问及编辑网页。

例如,由C++所撰写的程序可以加入浏览器控件里,并通过Trident引擎访问当前显示在浏览器上的网页内容及网页的各种元素的值,从浏览器控件触发的事件亦可被程序截取并进行处理。

Trident引擎所提供的所有库可以通过与mshtml.dll这个文件的链接而达成撰写程序时所需要的功能。

除此之外,微软还有另一个网页浏览器排版引擎,称为Tasman,它是使用在“Internet Explorer for Mac”的排版引擎。

相较于Trident,Tasman引擎对网页标准有较佳的支持。

与普遍的看法相反的是,微软已经停止了Mac版本的InternetExplorer的开发,但Tasman的开发仍旧持续,新版本的Tasman引擎仍被应用在一些微软产品上,如:Mac版本的Microsoft Office。

基于Trident技术的应用程序除了InternetExplorer第四版以后的版本使用Trident排版引擎之外,还有其它的应用程序也使用了Trident排版引擎所提供的技术:微软视窗操作系统内的应用程序·从Windows 98到Windows XP及Windows Server 2003所有版本的Windows Explorer。

浏览器内核

浏览器内核

浏览器内核浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息,不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

Trident:(IE浏览器使用的内核),又称MSHTML,是微软公司开发的渲染引擎。

已经深入了WINDOWS操作系统的骨髓。

【辉煌与没落】1997年首次在IE4中使用,他的多接口的有点广受欢迎,是一款开放的内核,很多浏览器都采用了Trident内核;IE本身的“垄断性”(虽然不能直接说其垄断,但基于windows系统下都是预装的IE浏览器),这样造成Trident长期一家独大,微软很长时间并没有更新Trident内核,曾一度与W3C标准脱节(2005年),大量的BUG和安全问题也长期的暴露出来,哪里有滞后哪里就有更新,Firefox和Opera就是这一时期产生的非Trident的浏览器。

【特点】早期IE占有的份额比较大,所以相对使用用户较多。

【代表浏览器】IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0)世界之窗、360浏览器、遨游、搜狗浏览器、腾讯浏览器….等Gecko:一个跨平台的内核,是完全开源的,由C++开发。

【诞生】在微软不在更新Trident时候,内部一些开发人员的不满,当时把已经停止更新了的Netscape的一些员工以当时的Mosaic内核为基础重新编写内核,于是开发出了Geckos。

事实上,还是Firefox的用户最多。

【特点】这个内核的优点就是功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口,但是代价是也显而易见就是要消耗很多的资源,比如内存。

Webkit内核初探

Webkit内核初探

Webkit内核初探•作者: 阿吉•校对&整理: lucifer当下浏览器内核主要有Webkit、Blink 等。

本文分析注意是自2001 年 Webkit 从 KHTML 分离出去并开源后,各大浏览器厂商魔改Webkit 的时期,这些魔改的内核最终以Chromium 受众最多而脱颖而出。

本文就以 Chromium 浏览器架构为基础,逐层探入进行剖析。

引子这里以一个面试中最常见的题目从URL 输入到浏览器渲染页面发生了什么?开始。

这个很常见的题目,涉及的知识非常广泛。

大家可先从浏览器监听用户输入开始,浏览器解析url 的部分,分析出应用层协议是HTTPS 还是 HTTP 来决定是否经过会话层 TLS 套接字,然后到 DNS 解析获取 IP,建立 TCP 套接字池以及 TCP 三次握手,数据封装切片的过程,浏览器发送请求获取对应数据,如何解析HTML,四次挥手等等等等。

这个回答理论上可以非常详细,远比我提到的多得多。

本文试图从浏览器获取资源开始探究 Webkit。

如浏览器如何获取资源,获取资源时Webkit 调用了哪些资源加载器(不同的资源使用不同的加载器),Webkit 如何解析HTML 等入手。

想要从前端工程师的角度弄明白这些问题,可以先暂时抛开C++源码,从浏览器架构出发,做到大致了解。

之后学有余力的同学再去深入研究各个底层细节。

本文的路线循序渐进,从Chromium 浏览器架构出发,到Webkit 资源下载时对应的浏览器获取对应资源如 HTML、CSS 等,再到 HTML 的解析,再到 JS 阻塞 DOM 解析而产生的 Webkit 优化引出浏览器多线程架构,继而出于安全性和稳定性的考虑引出浏览器多进程架构。

一. Chromium 浏览器架构(Chromium 浏览器架构)我们通常说的浏览器内核,指的是渲染引擎。

WebCore 基本是共享的,只是在不同浏览器中使用 Webkit 的实现方式不同。

IE FF Chrome 等浏览器内核以及脚本引擎详解

IE FF Chrome 等浏览器内核以及脚本引擎详解

浏览器是我们每天几乎都必须使用的软件产品,可是对于自己每天都接触的浏览器,很多同学其实对其一无所知。

今天异次元就跟大家说说关于浏览器核的一些事儿吧,好让你了解多一点稍微在的东西。

在下面的文章中主要介绍一些常见的浏览器核和JavaScript引擎,部分容来自于我在网上找到的资料,还有一些是我自己的理解,不保证完全正确,但是大致应该是没错的。

如果有误,请指正……一、浏览器核(排版引擎/渲染引擎)首先解释一下浏览器核是什么东西。

英文叫做:Rendering Engine,中文翻译很多,排版引擎、解释引擎、渲染引擎,现在流行称为浏览器核,至于为什么流行这么称呼,请自行领悟。

Rendering Engine,顾名思义,就是用来渲染网页容的,将网页的代码转换为最终你看得见的页面。

因为是排版,所以肯定会排版错位等问题。

为什么会排版错位呢?有的是由于本身编写不规,有的是由于浏览器本身的渲染不标准。

现在有几个主流的排版引擎,因为这些排版引擎都有其代表的浏览器,所以常常会把排版引擎的名称和浏览器的名称混用,比如常的说IE核、Chrome核。

其实这样子是不太合理的,因为一个完整的浏览器不会只有一的排版引擎,还有自己的界面框架和其它的功能支撑,而排版引擎本身也不可能实现浏览器的所有功能。

下面罗列一下几款主流的排版引擎和浏览器。

1、Trident 核(Windows)Trident 就是大名鼎鼎的IE浏览器所使用的核,也是很多浏览器所使用的核,通常被称为IE核。

基于Trident核的浏览器非常多,这是因为Trident核提供了丰富的调用接口。

老的Trident核(比如常说的IE6核)一直是不遵循W3C标准的,但是由于当时IE6的市场份额最大,所以后果就是大量的网页专门为IE6等老Trident核编写,在IE6下显示很正常,但其实这些网页的代码并不符合W3C标准,于是,完全依据W3C标准写的网页在老的Trident核下面又出现偏差,这就是为什么很多人觉得后来的IE9的网页排版有时会乱了,而IE6则正常,其实不是浏览器兼容性差了,而是你访问的网页不符合新的标准。

全面体验Chromium内核版微软Edge

全面体验Chromium内核版微软Edge

全面体验Chromium内核版微软Edge微软Edge浏览器一直以来都备受关注,作为Windows系统的默认浏览器,它在用户中的地位不言而喻。

由于一些技术和用户体验方面的原因,Edge浏览器的市场份额并不如Chrome等主流浏览器。

为了改变这种局面,微软决定采用Chromium内核进行重新开发,以期提升其在浏览器市场的竞争力。

在2018年12月,微软则正式发布了基于Chromium内核的全新Edge浏览器。

那么,这款全新Edge浏览器究竟有何不同?接下来,我们就来一起全面体验一下Chromium内核版微软Edge。

全新Edge浏览器的界面整体上与之前的版本保持了一致,但在细节方面进行了许多改进。

在安装完Edge浏览器后,随即打开,界面的整体感觉与之前的Edge浏览器并无太大差异,但在使用的过程中可以感受到明显的提升。

在新版Edge中,微软加入了诸多的全新设计元素。

浏览器的设置界面得到了重新设计,更加直观和方便操作;标签页的设计也更加清晰,用户可以一目了然地看到当前打开的所有标签页。

全新Edge还支持了暗黑模式,不仅能够保护用户的视力,也更加符合当今潮流。

在功能方面,全新Edge浏览器也是一改过去的局面,加入了众多令人耳目一新的功能。

全新Edge内置了阅读清晰的PDF查看器,用户无需安装其他PDF工具即可直接在浏览器中方便地查看PDF文件。

Edge还支持了集成Azure防护,保护用户的在线隐私安全。

而且,全新Edge还加入了全新的插件商店,使得用户可以方便地找到并安装各种实用的插件,从而进一步提升浏览器的实用性和个性化定制能力。

Edge浏览器还加入了沉浸式阅读模式,用户可以在不受干扰的情况下专心阅读文章内容,提高工作效率。

值得一提的是,全新Edge浏览器在性能方面也有了显著的提升。

作为Chromium内核版浏览器,Edge在性能方面自然不会逊色于Chrome。

Edge浏览器的启动速度比之前有了明显的提升,加载网页的速度也更加迅速。

浏览器内核详解

浏览器内核详解

浏览器内核揭秘目前浏览器产品繁多,网上经常有文章对各类浏览器进行比较,其中常常被提及的一个重要指标就是“浏览器内核”,究竟什么是内核呢?此外,双核浏览器近几年来异军突起,迅速占领了大片市场份额,那么什么是双核浏览器?双核和单核相比有什么区别,优势?为了解释上述的疑问,给同学们提供“选择浏览器”的依据,我们特地撰写了此篇文章。

本文将为您介绍以下几个方面的内容:1:什么是浏览器内核;2:浏览器内核的作用;3:当前主流浏览器内核有哪些;4:浏览器内核对我有哪些影响;5:什么是双核?为什么要使用双核?以及双核的优势。

浏览器内核其实就是浏览器的排版引擎,也被称为页面渲染引擎(RenderingEngine)。

所谓引擎,即对一组核心功能模块的统称,这组功能模块提供API调用接口,供外部调用。

举个例子而言:浏览器内核,相当于汽车的发动机部分,没有发动机,汽车外表再漂亮也跑不动。

图表1 浏览器内核那么浏览器内核主要做什么事情呢?如下表所示:由于不同的浏览器内核对网页语法的解释不尽相同,因此同一网页在不同的内核的浏览器里的展现有可能是不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

图表2 不同内核可能导致不同页面效果如果加上一些几乎没有什么人在用的内核,那么浏览器内核大约有10款以上,甚至更多,不过通常我们比较常见的大约只有四种。

一:四种主流内核Trident(IE浏览器采用的内核)Trident内核,又被很多人称为IE内核,这是由于该内核与微软的渊源很深。

为了规范起见,我们将在下面的文章中将其统一称为Trident。

该内核是微软在Mosaic代码的基础之上修改而来的,于1997年在IE4中首次被采用,并一直沿用到目前的IE9。

Trident为闭源引擎,所以开发者无法直接修改或封装该内核,不过微软提供了相应的调用接口。

由于微软将IE捆绑在Windows平台上,所以在浏览器的内核领域,Trident很长时间内都是一家独大。

浏览器内核详细讲解

浏览器内核详细讲解

首先解释一下浏览器内核是什么东西。

英文叫做:Rendering Engine,中文翻译很多,排版引擎、解释引擎、渲染引擎,现在流行称为浏览器内核,至于为什么流行这么称呼,请自行领悟。

Rendering Engine,顾名思义,就是用来渲染网页内容的,将网页的代码转换为最终你看得见的页面。

因为是排版,所以肯定会排版错位等问题。

为什么会排版错位呢?有的是由于网站本身编写不规范,有的是由于浏览器本身的渲染不标准。

现在有几个主流的排版引擎,因为这些排版引擎都有其代表的浏览器,所以常常会把排版引擎的名称和浏览器的名称混用,比如常的说IE内核、Chrome内核。

其实这样子是不太合理的,因为一个完整的浏览器不会只有一的排版引擎,还有自己的界面框架和其它的功能支撑,而排版引擎本身也不可能实现浏览器的所有功能。

下面罗列一下几款主流的排版引擎和浏览器。

1、Trident 内核(Windows)Trident 就是大名鼎鼎的IE浏览器所使用的内核,也是很多浏览器所使用的内核,通常被称为IE内核。

基于Trident内核的浏览器非常多,这是因为Trident内核提供了丰富的调用接口。

老的Trident内核(比如常说的IE6内核)一直是不遵循W3C标准的,但是由于当时IE6的市场份额最大,所以后果就是大量的网页专门为IE6等老Trident内核编写,在IE6下显示很正常,但其实这些网页的代码并不符合W3C标准,于是,完全依据W3C标准写的网页在老的Trident 内核下面又出现偏差,这就是为什么很多人觉得后来的IE9的网页排版有时会乱了,而IE6则正常,其实不是浏览器兼容性差了,而是你访问的网页不符合新的标准。

目前可供调用的最新版的Trident内核是IE9所用的内核,相较之前的版本对W3C标准的支持增强了很多。

Trident内核的常见浏览器有:IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);世界之窗、360安全浏览器、傲游;搜狗浏览器;腾讯TT;阿云浏览器(早期版本)、百度浏览器(早期版本)、瑞星安全浏览器、Slim Browser;GreenBrowser、爱帆浏览器(12 之前版本)、115浏览器、155浏览器;闪游浏览器、N氧化碳浏览器、糖果浏览器、彩虹浏览器、瑞影浏览器、勇者无疆浏览器、114浏览器、蚂蚁浏览器、飞腾浏览器、速达浏览器、佐罗浏览器;其中部分浏览器的新版本是“双核”甚至是“多核”,其中一个内核是Trident,然后再增加一个其他内核。

浏览器内核揭秘

浏览器内核揭秘

浏览器内核揭秘作者:技术宅来源:《电脑爱好者》2013年第09期今年关于Opera的两条新闻颇耐人寻味,一条是二月份的时候,Opera宣布放弃自家的Presto引擎改用WebKit,而到了4月初,Opera又宣布紧随Google的脚步支持新的渲染引擎Blink。

为浏览器更换内核绝非易事,Opera不同寻常的“频繁”更换,预示着浏览器市场可能要重新洗牌。

那么,浏览器内核到底是什么,它是如何工作的,为何各大软件厂商在这上面要针锋相对呢?浏览器内核的四大金刚我们平时所使用的浏览器软件,一般来说可分成两大部分:Shell+内核(也称引擎)。

Shell也就是浏览器的外壳,比如窗口、菜单、工具栏等等,说白了就是浏览器跟用户交互的界面,通过Shell,我们可以对浏览器进行各种设置,调用内核的各种功能。

这就像汽车的外观、仪表、方向盘、导航等外围设备一样,用来使用和控制汽车。

而内核才是浏览器的核心,它实际就是一些程序和模块的集成,为浏览器提供主要功能,主要负责取得网页的内容(如HTML、XML、图像、CSS)并进行分析、显示,执行网页中的Javascript脚本等。

继续以汽车为比喻,它就如同汽车的发动机引擎,是汽车运行的真正动力。

其实在浏览器发展初期,外壳和内核并没有明确的划分,它们的功能往往混合在一起。

这种方式的缺点很明显,一旦某项功能有所改进,那么与此项功能相关的程序代码都要重新改写,费时费力。

于是为了便于软件的升级和维护,引进了模块化的思想,渐渐将外壳和内核分开,这样一来,即使内核升级了,只要它保持向下兼容,那么原来在它基础上开发出来的浏览器软件,不用作任何修改,就能继续使用。

就像汽车生产厂商有很多而发动机厂商却很少一样,真正能提供浏览器内核的软件厂商也是曲指可数。

当前主流内核有Trident、Gecko、WebKit、Presto四大家,其中Trident就是我们俗称的IE内核,Gecko是Firefox所用的内核,Webkit是苹果和谷歌所用的内核,Presto是Opera所用的内核。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络
用来完成网络调用,如http请求。

Native UI
用来绘制类似组合选择框及对话框等基本组件,具有不特定于某个平台的通用接口,底层使用操作系统的用户接口。

数据存储
属于持久层,浏览器需要在硬盘中保存类似cookie的各种数据。

平常大家讨论最热闹的就是浏览器内核,因为它关乎到我们前端工程师们所设计的界面是否如我们心中的模样展示在各个浏览器中。

虽然现在我们知道的浏览器有很多,除了上篇文章介绍的5大主浏览器,还有许多国产浏览器,例如360,遨游,世界之窗,UC,搜搜……,虽然浏览器厂家很多,但是这些浏览器会各自选择适合自己的开源内核。

我知道的浏览器内核:
Trident
是Windows搭载的网页浏览器即IE的内核。

1997年在IE4中使用。

1993年,NCSA将Mosaic的商业运营权转售给了Spyglass公司。

最早的IE1(1994年)版本号为4.40.308,因为当时微软还没有买下Spyglass Mosaic的源码,到了IE2和IE3,微软同时注明了版本2(4.40.516)和版本3(4.70.1158),表明IE即将成为微软专属软件。

直到IE4成为微软专属软件。

它采用的排版引擎(俗称内核)为Trident。

IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0)
实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现。

此外,为了方便也有很多人直接简称其为IE内核。

猎豹安全浏览器(1.0-4.2版本为Trident+Webkit,4.3版本为Trident+Blink)
360安全浏览器(1.0-5.0为Trident,6.0为Trident+Webkit,7.0为Trident+Blink)
360极速浏览器(7.5之前为Trident+Webkit,7.5为Trident+Blink)
傲游浏览器(傲游1.x、2.x为IE内核,3.x为IE与Webkit双核)
百度浏览器(早期版本)
世界之窗浏览器[2] (最初为IE内核,2013年采用Chrome+IE内核)
2345浏览器、腾讯T T、淘宝浏览器
搜狗高速浏览器(1.x为Trident,2.0及以后版本为Trident+Webkit)
阿云浏览器(早期版本)、瑞星安全浏览器
闪游浏览器、海豚浏览器(iPhone/iPad/Android)
UC浏览器(Blink内核+Trident内核)
其中一个内核是Trident,然后再增加一个其他内核。

国内的厂商一般把其他内核叫做“高速浏览模式”,而Trident则是“兼容浏览模式”
Gecko
是Netscape6开始采用的内核,后来的Mozilla FireFox也采用了该内核,Gecko的特点是代码完全公开,是个开源内核,因此受到许多人的青睐。

事实上,Gecko引擎的由来跟IE不无关系
前面说过IE没有使用W3C的标准,这导致了微软内部一些开发人员的不满;网景解散后,他们与当时已经停止更新了的Netscape的一些员工一起创办了Mozilla。

以当时的Mosaic内核为基础重新编写内核,于是开发出了Gecko。

补充:JavaScript引擎是SpiderMonkey。

结果,网景6.0(trident 1.0)在2000年11月才被正式发布。

这二者均是在Mosaic内核的基础上重新编写内核。

KHT ML及KJS
khtml为排版引擎即渲染引擎,kjs为js引擎。

均是由KDE研发。

是自由软件,符合GPL(由他为基础开发的软件也为开源软件)。

Webkit
包括webcore排版引擎与JavaScriptCore解析引擎,均是苹果从KDE的KHT ML及KJS引擎衍生而来。

是苹果公司自己的内核,也是Safari浏览器使用的内核,但是符合GPL条款,所以webkit为开源的,但是Safari浏览器为部分开源,自己公司的某些接口未对外开源。

在Chrome 28
之前,google使用webkit中webcore与自己的javascript V8引擎。

那时也统称为webkit引擎。

Blink。

相关文档
最新文档