浏览器组成
# 浏览器组成
⚠️
我觉得我作为一名不太合格的八股文选手对于浏览器组成的侧重点也不多,仅仅摘录了一些
# 对浏览器的理解
浏览器的功能就是将用户选择的web资源呈现出来,资源的格式通常是html,也包括PDF和image,用户通过URL(统一资源标识符)来指定请求资源的位置。浏览器分为两部分,shell和内核
shell是指浏览器的外壳,例如菜单,工具栏等,主要是提供给用户界面操作,参数设置等等,他是调用内核来实现各种功能的- 内核是浏览器的核心。内核是基于标记语言显示内容的程序或模块
# 对浏览器内核的理解
浏览器内核主要分成两部分:
- 渲染引擎的职责就是渲染,即在浏览器窗口中显示所请求的内容。默认情况下,渲染引擎可以显示
html、xml文档及图片,它也可以借助插件显示其他类型数据,例如使用PDF阅读器插件,可以显示PDF格式。 JS引擎:解析和执行javascript来实现网页的动态效果。
最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎
# 一些主流浏览器的内核
IE浏览器内核:Trident内核,也是俗称的IE内核Chrome浏览器内核:统称为Chromium内核或Chrome内核,以前是Webkit内核,现在是Blink内核Firefox浏览器内核:Gecko内核,俗称Firefox内核Safari浏览器内核:Webkit内核Opera浏览器内核:最初是自己的Presto内核,后来加入谷歌大军,从Webkit又到了Blink内核360浏览器、猎豹浏览器内核:IE + Chrome双内核搜狗、遨游、QQ 浏览器内核:
Trident(兼容模式)+Webkit(高速模式)百度浏览器、世界之窗内核:
IE内核2345浏览器内核:好像以前是
IE内核,现在也是IE + Chrome双内核了UC浏览器内核:这个众口不一,UC说是他们自己研发的U3内核,但好像还是基于Webkit和Trident
依我愚见
个人感觉重要的粗体那仨
# 浏览器的主要组成部分
⽤户界⾯ 包括地址栏、前进/后退按钮、书签菜单等。除了浏览器主窗⼝显示的您请求的⻚⾯外,其他显示的各个部分都属于⽤户界⾯。
浏览器引擎 在⽤户界⾯和呈现引擎之间传送指令。
呈现引擎 负责显示请求的内容。如果请求的内容是
HTML,它就负责解析HTML和CSS内容,并将解析后的内容显示在屏幕上。⽹络 ⽤于⽹络调⽤,⽐如
HTTP请求。其接⼝与平台⽆关,并为所有平台提供底层实现。⽤户界⾯后端 ⽤于绘制基本的窗⼝⼩部件,⽐如组合框和窗⼝。其公开了与平台⽆关的通⽤接⼝,⽽在底层使⽤操作系统的⽤户界⾯⽅法。
JavaScript解释器。⽤于解析和执⾏JavaScript代码。数据存储 这是持久层。浏览器需要在硬盘上保存各种数据,例如
Cookies。新的HTML规范 (HTML5) 定义了“⽹络数据库”,这是⼀个完整(但是轻便)的浏览器内数据库。
值得注意的是,和⼤多数浏览器不同,Chrome 浏览器的每个标签⻚都分别对应⼀个呈现引擎实例。每个标签⻚都是⼀个独⽴的进程