浏览器组成
# 浏览器组成
⚠️
我觉得我作为一名不太合格的八股文选手对于浏览器组成的侧重点也不多,仅仅摘录了一些
# 对浏览器的理解
浏览器的功能就是将用户选择的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
浏览器的每个标签⻚都分别对应⼀个呈现引擎实例。每个标签⻚都是⼀个独⽴的进程