编写网站方案设计书表格,要基于wordpress开发,大连爱得科技网站建设公司怎么样,广汉网站只是用户看到仅仅只是浏览器本身#xff0c;却很少能看到浏览器最核心的部分—浏览器内核。从第一款libwww#xff08;Library WorldWideWeb#xff09;浏览器发展至今已经经历了无数竞争与淘汰了。现在国内常见的浏览器有#xff1a;IE、Firefox、QQ浏览器、Safari、Opera…只是用户看到仅仅只是浏览器本身却很少能看到浏览器最核心的部分—浏览器内核。从第一款libwwwLibrary WorldWideWeb浏览器发展至今已经经历了无数竞争与淘汰了。现在国内常见的浏览器有IE、Firefox、QQ浏览器、Safari、Opera、Google Chrome、百度浏览器、搜狗浏览器、猎豹浏览器、360浏览器、UC浏览器、遨游浏览器、世界之窗浏览器等。但目前最为主流浏览器有五大款分别是IE、Firefox、Google Chrome、Safari、Opera。 浏览器最重要的部分是浏览器的内核。浏览器内核是浏览器的核心也称“渲染引擎”用来解释网页语法并渲染到网页上。浏览器内核决定了浏览器该如何显示网页内容以及页面的格式信息。不同的浏览器内核对网页的语法解释也不同因此网页开发者需要在不同内核的浏览器中测试网页的渲染效果。
浏览器内核又可以分成两部分渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。它负责取得网页的内容HTML、XML、图像等等、整理讯息例如加入 CSS 等以及计算网页的显示方式然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。JS 引擎则是解析 Javascript 语言执行 javascript 语言来实现网页的动态效果。
最开始渲染引擎和 JS 引擎并没有区分的很明确后来 JS 引擎越来越独立内核就倾向于只指渲染引擎。有一个网页标准计划小组制作了一个 ACID 来测试引擎的兼容性和性能。内核的种类很多如加上没什么人使用的非商业的免费内核可能会有 10 多种但是常见的浏览器内核可以分这四种Trident、Gecko、Blink、Webkit。
1、IE浏览器 IE是微软公司旗下浏览器是目国内用户量最多的浏览器。IE诞生于1994年当时微软为了对抗市场份额占据将近百分之九十的网景Netscape Navigator于是在Windows中开发了自己的浏览器Internet Explorer自此也引发了第一次浏览器大战。结果可想而知微软大获全胜网景不得不将自己卖给AOL公司。但实际上事情并没有结束网景后来开发了风靡一时的Firefox火狐至今Firefox也成为世界五大浏览器之一。 1996年微软从Spyglass手里拿到Spyglass Mosaic的源代码和授权开始开发自己的浏览器IE。后来微软以IE和Windows捆绑的模式不断向市场扩展份额使IE成为市场的绝对主流。现在装了Windows系统的电脑基本无法卸载IE。 2、Opera浏览器 Opera是挪威Opera Software ASA公司旗下的浏览器。1995年opera公司发布第一版Opera浏览器使用自己研发的Presto内核。当时opera公司的开发团队不断完善Presto内核使Opera浏览器一度成为顶级浏览器。直到2016年奇虎360和昆仑万维收购了Oprea浏览器从此也丢弃了强大的Presto内核改用当时Google开源的webkit内核。后来Opera浏览器跟随Google将浏览器内核改为Blink内核。自此Presto内核也淡出了互联网市场。 3、Safari浏览器 第二次浏览器大战是从苹果公司发布Safari浏览器开始的。2003年苹果公司在苹果手机上开发Safari浏览器利用自己得天独厚的手机市场份额使Safari浏览器迅速成为世界主流浏览器。Safari是最早使用webkit内核的浏览器也是现在苹果默认的浏览器。 4、Firefox浏览器 Firefox浏览器使Mozilla公司旗下浏览器也是刚才提到的网景公司后来的浏览器。网景被收购后网景人员创办了Mozilla基金会这是一个非盈利组织他们在2004年推出自己的浏览器Firefox。Firefox采用Gecko作为内核。Gecko是一个开源的项目代码完全公开因此受到很多人的青睐。Firefox的问世加快了第二次浏览器大战的开始。第二次浏览器大战与第一次二元鼎力的局面不同这一次的特点就是百家争鸣也自此打破了IE浏览器从98年网景被收购后独步浏览器市场的局面。 5、Chrome浏览器 Chrome浏览器是google旗下的浏览器。Chrome浏览器至发布以来一直讲究简洁、快速、安全所以Chrome浏览器到现在一直受人追捧。最开始Chrome采用webkit作为浏览器内核直到2013年google宣布不再使用苹果的webkit内核开始使用webkit的分支内核Blink。
以上是五大浏览器的简介接下来是四大内核。在介绍五大浏览器的同时也已经顺便介绍了四大内核。四大内核分别是Trident也称IE内核、webkit、Blink、Gecko。五大浏览器采用的都是单内核而随着浏览器的发展现在也出现了双内核。像360浏览器、QQ浏览器都是采用双内核。 作为前端开发熟悉四大内核是非常有必要的。四大内核的解析不同使网页渲染效果更具多样化。下面总结一下各常用浏览器所使用的内核。 1、IE浏览器内核Trident内核也是俗称的IE内核 2、Chrome浏览器内核统称为Chromium内核或Chrome内核以前是Webkit内核现在是Blink内核 3、Firefox浏览器内核Mozilla的Gecko内核俗称Firefox内核 4、Safari浏览器(MacOS)内核Webkit内核 5、Opera浏览器内核最初是自己的Presto内核后来是Webkit现在是Blink内核 6、360浏览器、猎豹浏览器内核IEChrome双内核 7、搜狗、遨游、QQ浏览器内核Trident兼容模式Webkit高速模式 8、百度浏览器、世界之窗内核IE内核 9、2345浏览器内核以前是IE内核现在也是IEChrome双内核
Trident ([traɪd(ə)nt])
Trident(IE内核)该内核程序在 1997 年的 IE4 中首次被采用是微软在 Mosaic马赛克这是人类历史上第一个浏览器从此网页可以在图形界面的窗口浏览 代码的基础之上修改而来的并沿用到 IE11也被普遍称作 IE内核。
Trident实际上是一款开放的内核其接口内核设计的相当成熟因此才有许多采用 IE 内核而非 IE 的浏览器(壳浏览器)涌现。由于 IE 本身的 垄断性虽然名义上 IE 并非垄断但实际上特别是从 Windows 95 年代一直到 XP 初期就市场占有率来说 IE 的确借助 Windows 的东风处于 垄断 的地位而使得 Trident 内核的长期一家独大微软很长时间都并没有更新 Trident 内核这导致了两个后果——一是 Trident 内核曾经几乎与 W3C 标准脱节2005年二是 Trident 内核的大量 Bug 等安全性问题没有得到及时解决然后加上一些致力于开源的开发者和一些学者们公开自己认为 IE 浏览器不安全的观点也有很多用户转向了其他浏览器Firefox 和 Opera 就是这个时候兴起的。非 Trident 内核浏览器的市场占有率大幅提高也致使许多网页开发人员开始注意网页标准和非 IE浏览器的浏览效果问题。
补充IE 从版本 11 开始初步支持 WebGL 技术。IE8 的 JavaScript 引擎是 JscriptIE9 开始用 Chakra这两个版本区别很大Chakra 无论是速度和标准化方面都很出色。
国内很多的双核浏览器的其中一核便是 Trident美其名曰 兼容模式。
Window10 发布后IE 将其内置浏览器命名为 EdgeEdge 最显著的特点就是新内核 EdgeHTML。关于 Edge 浏览器更多可以参考 如何评价 Microsoft Edge 浏览器 以及 微软开源Edge的JS引擎ChakraCore
关于 IE 的历史推荐这篇文章 激荡20年IE浏览器的辉煌与落寞
Gecko ([gekəʊ])
Gecko(Firefox 内核)Netscape6 开始采用的内核后来的 Mozilla FireFox(火狐浏览器) 也采用了该内核Gecko 的特点是代码完全公开因此其可开发程度很高全世界的程序员都可以为其编写代码增加功能。因为这是个开源内核因此受到许多人的青睐Gecko 内核的浏览器也很多这也是 Gecko 内核虽然年轻但市场占有率能够迅速提高的重要原因。
事实上Gecko 引擎的由来跟 IE 不无关系前面说过 IE 没有使用 W3C 的标准这导致了微软内部一些开发人员的不满他们与当时已经停止更新了的 Netscape 的一些员工一起创办了 Mozilla以当时的 Mosaic 内核为基础重新编写内核于是开发出了 Gecko。不过事实上Gecko 内核的浏览器仍然还是 Firefox (火狐) 用户最多所以有时也会被称为 Firefox 内核。此外 Gecko 也是一个跨平台内核可以在Windows、 BSD、Linux 和 Mac OS X 中使用。
Webkit
一提到 webkit首先想到的便是 chrome可以说chrome 将 Webkit内核 深入人心殊不知Webkit 的鼻祖其实是 Safari。现在很多人错误地把 webkit 叫做 chrome内核即使 chrome内核已经是 blink 了苹果都哭瞎了有木有。
Safari 是苹果公司开发的浏览器使用了KDELinux桌面系统的 KHTML 作为浏览器的内核Safari 所用浏览器内核的名称是大名鼎鼎的 WebKit。 Safari 在 2003 年 1 月 7 日首度发行测试版并成为 Mac OS X v10.3 与之后版本的默认浏览器也成为苹果其它系列产品的指定浏览器也已支持 Windows 平台。
如上述可知WebKit 前身是 KDE 小组的 KHTML 引擎可以说 WebKit 是 KHTML 的一个开源的分支。当年苹果在比较了 Gecko 和 KHTML 后选择了后者来做引擎开发是因为 KHTML 拥有清晰的源码结构和极快的渲染速度。
Webkit内核 可以说是以硬件盈利为主的苹果公司给软件行业的最大贡献之一。随后2008 年谷歌公司发布 chrome 浏览器采用的 chromium 内核便 fork 了 Webkit。
PSApple 在 Safari 里面使用了自己的 Nitro JavaScript 引擎只用 WebKit 来渲染 HTML所以一般说到 Webkit通常指的就是渲染引擎而不包括 Javascript 引擎
Chromium/Blink
2008 年谷歌公司发布了 chrome 浏览器浏览器使用的内核被命名为 chromium。
chromium fork 自开源引擎 webkit却把 WebKit 的代码梳理得可读性提高很多所以以前可能需要一天进行编译的代码现在只要两个小时就能搞定。因此 Chromium 引擎和其它基于 WebKit 的引擎所渲染页面的效果也是有出入的。所以有些地方会把 chromium 引擎和 webkit 区分开来单独介绍而有的文章把 chromium 归入 webkit 引擎中都是有一定道理的。
谷歌公司还研发了自己的 Javascript 引擎V8极大地提高了 Javascript 的运算速度。
chromium 问世后带动了国产浏览器行业的发展。一些基于 chromium 的单核双核浏览器如雨后春笋般拔地而起例如 搜狗、360、QQ浏览器等等无一不是套着不同的外壳用着相同的内核。
然而 2013 年 4 月 3 日谷歌在 Chromium Blog 上发表 博客称将与苹果的开源浏览器核心 Webkit 分道扬镳在 Chromium 项目中研发 Blink 渲染引擎即浏览器核心内置于 Chrome 浏览器之中。
webkit 用的好好的为何要投入到一个新的内核中去呢
Blink 其实是 WebKit 的分支如同 WebKit 是 KHTML 的分支。Google 的 Chromium 项目此前一直使用 WebKit(WebCore) 作为渲染引擎但出于某种原因并没有将其多进程架构移植入Webkit。
后来由于苹果推出的 WebKit2 与 Chromium 的沙箱设计存在冲突所以 Chromium 一直停留在 WebKit并使用移植的方式来实现和主线 WebKit2 的对接。这增加了 Chromium 的复杂性且在一定程度上影响了 Chromium 的架构移植工作。
基于以上原因Google 决定从 WebKit 衍生出自己的 Blink 引擎后由 Google 和 Opera Software 共同研发将在 WebKit 代码的基础上研发更加快速和简约的渲染引擎并逐步脱离 WebKit 的影响创造一个完全独立的 Blink 引擎。这样以来唯一一条维系 Google 和苹果之间技术关系的纽带就这样被切断了。
Google 和苹果在多个领域都是竞争对手而唯独在浏览器引擎上有技术合作利益一致。但为了各自的利益谁都不会拿出 100% 的 诚意 来做好 WebKit因为你做出来的成果竞争对手可以直接享用。移动互联网已经崛起手机和平板设备端必将成为浏览器的另一个战场。这个时候如果 Google 跟苹果仍然黏在一起将会严重阻碍双方的进步也会阻碍 WebKit 的进步。
据说 Blink 删除了 880w 行 webkit 代码。
至于为什么叫 blink有兴趣的可以看下这篇访谈 Paul Irish on Chrome Moving to Blink里面说
pre styleposition: relative;[复制代码](javascript:;)it fits that Blink will never support the infamous blink tag. /pre
Blink 引擎问世后国产各种 chrome 系的浏览器也纷纷投入 Blink 的怀抱可以在浏览器地址栏输入 chrome://version 进行查看。比如在 360 下 Presto ([prestəʊ])
Presto 是挪威产浏览器 opera 的 前任 内核为何说是 前任因为最新的 opera 浏览器早已将之抛弃从而投入到了谷歌大本营。
Opera 的一个里程碑作品是 Opera7.0因为它使用了 Opera Software 自主开发的 Presto 渲染引擎取代了旧版 Opera 4 至 6 版本使用的 Elektra 排版引擎。该款引擎的特点就是渲染速度的优化达到了极致然而代价是牺牲了网页的兼容性。
Presto 加入了动态功能例如网页或其部分可随着 DOM 及 Script 语法的事件而重新排版。Presto 在推出后不断有更新版本推出使不少错误得以修正以及阅读 Javascript 效能得以最佳化并成为当时速度最快的引擎。
然而为了减少研发成本Opera 在 2013 年 2 月宣布放弃 Presto转而跟随 Chrome 使用 WebKit 分支的 Chromium 引擎作为自家浏览器核心引擎Presto 内核的 Opera 浏览器版本永远的停留在了 12.17。在 Chrome 于 2013 年推出 Blink 引擎之后Opera 也紧跟其脚步表示将转而使用 Blink 作为浏览器核心引擎。
Presto 与开源的 WebKit 和经过谷歌加持的 Chromium 系列相比毫无推广上的优势这是 Opera 转投 WebKit 的主要原因并且使用 WebKit 内核的 Opera 浏览器可以兼容谷歌 Chrome 浏览器海量的插件资源。但是换内核的代价对于 Opera 来说过于惨痛。使用谷歌的 WebKit 内核之后原本快速轻量化稳定的 Opera 浏览器变得异常的卡顿而且表现不稳定Opera 原本旧内核浏览器书签同步到新内核上的工作 Opera 花了整整两年时间期间很多 Opera 的用户纷纷转投谷歌浏览器和其他浏览器造成了众多的用户流失。时至今日现在还有上千万人在使用老版本的 Opera。
很多人都认为 Opera 浏览器终止在了 12.17此后所更新的 Opera 版本号不再是原来那个 Opera。
说好的 Presto Forever 呢
关于移动端
移动端的浏览器内核主要说的是系统内置浏览器的内核。
目前移动设备浏览器上常用的内核有 WebkitBlinkTridentGecko 等其中 iPhone 和 iPad 等苹果 iOS 平台主要是 WebKitAndroid 4.4 之前的 Android 系统浏览器内核是 WebKitAndroid4.4 系统浏览器切换到了Chromium内核是 Webkit 的分支 BlinkWindows Phone 8 系统浏览器内核是 Trident。
总结
浏览器内核主要指的是浏览器的渲染引擎2013 年以前代表有 TridentIEGeckofirefoxWebkitSafari chrome 等以及 Prestoopera)。2013 年谷歌开始研发 blink 引擎chrome 28 以后开始使用而 opera 则放弃了自主研发的 Presto 引擎投入谷歌怀抱和谷歌一起研发 blink 引擎国内各种 chrome系的浏览器360、UC、QQ、2345 等等也纷纷放弃 webkit投入 blink 的怀抱。