JavaWEB笔记 浏览器内核及分类

文章目录

  • JavaWEB笔记 浏览器内核及分类
    • 什么是浏览器内核
    • 内核分类
      • Trident
      • Gecko
      • Presto
      • Webkit
      • Blink
      • 总结
      • 浏览器内核实现原理
      • 渲染引擎运作流程

浏览器=shell+内核
其中shell的种类相对比较多,内核则比较少。Shell是指浏览器的外壳:例如菜单,工具栏 等。主要是提供给用户界面操作,参数设置等等。它是调用内核来实现各种功能的。内核才是浏览器的核心。内核是基于标记语言显示内容的程序或模块。

什么是浏览器内核

浏览器内核又可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。(参见维基百科)JS引擎则是解析Javascript语言,执行javascript语言来实现网页的动态效果。最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。JS引擎负责对JavaScript进行解释、编译和执行,以使网页达到一些动态的效果。但是常见的浏览器内核可以分这五种:Trident、Gecko、 Presto、Webkit、Blink。

内核分类

Trident

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引擎是Jscript,IE9开始用Chakra,这两个版本区别很大,Chakra无论是速度和标准化方面都很出色。
Trident内核的常见浏览器有:[1]  IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);[1] 360安全浏览器(1.0-5.0为Trident,6.0为Trident+Webkit,7.0为Trident+Blink)猎豹极轻浏览器,360极速浏览器(7.5之前为Trident+Webkit,7.5为Trident+Blink)猎豹安全浏览器(1.0-4.2版本为Trident+Webkit,4.3及以后版本为Trident+Blink)猎豹极轻浏览器,傲游浏览器(傲游1.x、2.x为IE内核,3.x为IE与Webkit双核)、百度浏览器(早期版本)、世界之窗浏览器[2] (最初为IE内核,2013年采用Chrome+IE内核)、2345浏览器、腾讯TT、淘宝浏览器、采编读浏览器、搜狗高速浏览器(1.x为Trident,2.0及以后版本为Trident+Webkit)、阿云浏览器(早期版本)、瑞星安全浏览器、Slim Browser、 GreenBrowser、爱帆浏览器(12 之前版本)、115浏览器、155浏览器、闪游浏览器、N氧化碳浏览器、糖果浏览器、彩虹浏览器、瑞影浏览器、勇者无疆浏览器、114浏览器、蚂蚁浏览器、飞腾浏览器、速达浏览器、佐罗浏览器、海豚浏览器(iPhone/iPad/Android)、UC浏览器(Blink内核+Trident内核)等。
其中部分浏览器的新版本是“双核”甚至是“多核”,其中一个内核是Trident,然后再增加一个其他内核。国内的厂商一般把其他内核叫做“高速浏览模式”,而Trident则是“兼容浏览模式”,用户可以来回切换。

Gecko

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中使用。
补充:JavaScript引擎是SpiderMonkey。
Gecko内核常见的浏览器:[1] Mozilla Firefox、Mozilla SeaMonkey、waterfox(Firefox的64位开源版)、Iceweasel、Epiphany(早期版本)、Flock(早期版本)、K-Meleon

Presto

Presto(Opera前内核) (已废弃): Opera12.17及更早版本曾经采用的内核,现已停止开发并废弃,该内核在2003年的Opera7中首次被使用,该款引擎的特点就是渲染速度的优化达到了极致,然而代价是牺牲了网页的兼容性。
实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理上,Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行Javascrīpt的时候有着最快的速度,根据在同等条件下的测试,Presto内核执行同等Javascrīpt所需的时间仅有Trident和Gecko内核的约1/3(Trident内核最慢,不过两者相差没有多大),本文的其中一个修改者认为上述测试信息过于老旧且不完整,因为他曾做过的小测试显示Presto部分快部分慢,各内核总体相当。那次测试的时候因为Apple机的硬件条件和普通PC机不同所以没有测试WebCore内核。只可惜Presto是商业引擎,使用Presto的除开Opera以外,只剩下NDSBrowser、Wii Internet Channle、Nokia 770网络浏览器等,这很大程度上限制了Presto的发展。
Opera现已改用Google Chrome的Blink内核。

Webkit

Webkit(Safari内核,Chrome内核原型,开源):它是苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软件,在GPL条约下授权,同时支持BSD系统的开发。所以Webkit也是自由软件,同时开放源代码。在安全方面不受IE、Firefox的制约,所以Safari浏览器在国内还是很安全的。
限于Mac OS X的使用不广泛和Safari浏览器曾经只是Mac OS X的专属浏览器,这个内核本身应该说市场范围并不大;但似乎根据最新的浏览器调查表明,该浏览器的市场甚至已经超过了Opera的Presto了——当然这一方面得益于苹果转到x86架构之后的人气暴涨,另外也是因为Safari 3终于推出了Windows版的缘故吧。Mac下还有OmniWeb、Shiira等人气很高的浏览器。
搜狗高速浏览器高速模式也使用Webkit作为内核(在脚本理解方面,Chrome使用自己研发的V8引擎)。WebKit 内核在手机上的应用也十分广泛,例如 Google 的手机 Gphone、 Apple 的iPhone, Nokia’s Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。
WebKit内核常见的浏览器:傲游浏览器3、[1] Apple Safari (Win/Mac/iPhone/iPad)、Symbian手机浏览器、Android 默认浏览器,

Blink

产品简介
Blink是一个由Google和Opera Software开发的浏览器排版引擎,Google计划将这个渲染引擎作为Chromium计划的一部分,并且在2013年4月的时候公布了这一消息。这一渲染引擎是开源引擎WebKit中WebCore组件的一个分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex浏览器中使用。

总结

IE(9以前)=Trident+Jscript
IE(9以后)=Trident+Chakra
360=Trident+Blink
搜狗=Trident+WebKit
Firefox=Gecko+JagerMonkey
Safari=webkit=webcore+jscore
Chrome=Blink+v8
Opera=Blink+v8

浏览器内核实现原理

渲染流程如下所示:

渲染引擎运作流程

Mozilla架构设计:界面和实现分离。采用标记语言,JavaScript,C++来开发。JSEngine就是指SpideMonkey,Layout就是指Gecko。Mozilla的一个关键部分是XPCOM和NSPR。

Webkit的处理流程:

Mozilla架构设计:界面和实现分离。采用标记语言,JavaScript,C++来开发。JSEngine就是指SpideMonkey,Layout就是指Gecko。Mozilla的一个关键部分是XPCOM和NSPR。
参考资料:http://www.iefans.net/liulanqi-neihe-jiexi/
http://blog.csdn.net/jing_valora/article/details/51901208
http://www.cnblogs.com/kylin2016/p/5845658.html

JavaWEB笔记 浏览器内核及分类相关推荐

  1. 浏览器内核引擎分类归纳

    前端小知识--浏览器的内核引擎,四分天下: 1)Trident: IE 以Trident 作为内核引擎: 2)Gecko: Firefox 是基于 Gecko开发: 3)WebKit: Safari, ...

  2. 浏览器内核以及解决兼容性的方法

    浏览器内核以及解决兼容性的方法 浏览器内核: 分类: 1.Trident(IE内核) Trident(IE内核):该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来 ...

  3. 关于浏览器内核的一些概念

    什么是浏览器内核 要想搞清楚浏览器内核是什么,首先应该搞清楚浏览器的构成是怎样的.简单来说浏览器可以分为两部分: shell + 内核.其中 shell 的种类相对较多,内核则 较少.shell 是指 ...

  4. 浏览器内核分类及常用浏览器内核

    浏览器内核可以分成两部分: 渲染引擎(layout engineer或者Rendering Engine) 和 JS引擎 网页浏览器的排版引擎也被称为页面渲染引擎 浏览器最重要 最核心的部分就是渲染引 ...

  5. JavaScript学习笔记(O)——浏览器内核介绍

    术语解释 浏览器最重要或者说核心的部分是"Rendering Engine",可大概译为"解释引擎",不过我们一般习惯将之称为"浏览器内核" ...

  6. 【读书笔记】【WebKit 技术内 幕(一)】浏览器架构与浏览器内核;chromium、webkit和blink的渲染过程;chromium、webkit的架构与代码结构;webkit2架构

    文章目录 前言 Something great 第1章 浏览器和浏览器内核 浏览器 用户代理和浏览器行为 内核特征 WebKit与blink 第2章 HTML网页和结构 网页构成与结构 WebKit的 ...

  7. JavaWeb笔记:第07章 MVC |EL |JST |Filter |Listener |JQuery |AJAX |Maven |JSON |Redis |Linux |Nginx

    JavaWeb笔记:第07章 MVC |EL |JST |Filter |Listener |JQuery |AJAX |Maven |JSON |Redis |Linux |Nginx 1. MVC ...

  8. JavaWeb笔记-备份下

    JavaWeb笔记-备份下 html 简介: 超文本标记语言 Hyper Text Markup Language 网页语言 超文本:超出文本的范畴,使用html可以轻松实现 标记:html所有操作都 ...

  9. 09-day6黑马javaweb笔记-html基础

    09-day6黑马javaweb笔记-html基础 web概念概述 Javaweb 使用Java语言开发基于互联网的项目 软件架构: C/S: Client/Server 客户端/服务器端 * 在用户 ...

  10. 目前主流的四大浏览器内核Trident、Gecko、WebKit以及Presto

    浏览器最重要或者说核心的部分是"Rendering Engine",可大概译为"渲染引擎",不过我们一般习惯将之称为"浏览器内核".负责对网 ...

最新文章

  1. InnoDB和MyISAM引擎的效率比较
  2. 镜像和linux关系,Docker中容器和镜像的关系【通俗易懂】
  3. 在Gridview控件中根据Field Name来取得对应列索引
  4. 数据结构-挖坑填数+分治法解决快速排序问题(java+c)
  5. Elasticsearch 常见的DSL语法
  6. python中shutil模块_Python中shutil模块的学习笔记教程
  7. RabbitMq(八) SpringBoot整合RabbitMQ 生产者代码实现
  8. shell script 的追踪与 debug
  9. 多个python脚本同时执行_用shell同时启动多个python脚本
  10. linux 进程的pid分配策略——pid位图算法
  11. PHP面向对象之方法重写
  12. linux 在线考试系统下载,在线考试系统-英文版
  13. 回顾备忘—Android系统hal层相关系统粗概
  14. 【2020年高被引学者】 陶哲轩 加州大学洛杉矶分校
  15. 渗透测试必备google插件
  16. 关于树叶的活动设计_大班社会教案《有趣的叶子》
  17. Apex—— 查询一个对象上的所有字段记录
  18. CSS3干货14:自定义页面滚动条
  19. java根据出生日期自动计算年龄(工具类)
  20. Guava-retrying 重试机制

热门文章

  1. python输入矩阵_python如何输入矩阵
  2. android逆向基础教程二
  3. javascript实现常用的设计模式
  4. 网络扫描 : nbtscan
  5. win10+VS2017+DX11踩的那些雷
  6. 将solidworks建的机器人模型导入到ros中
  7. 【设备管理】【OEE】30页精彩PPT:详解精益生产OEE
  8. Serializable与serialVersionUID的作用
  9. 修改AspNetPager的CustomInfoHTML,添加自定义样式
  10. 关于MyEclipse 10 破解程序打开的原因