Web/01-HTML/02-浏览器的介绍.md
2023-10-05 16:38:37 +08:00

123 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 02-浏览器的介绍
publish: true
---
<ArticleTopAd></ArticleTopAd>
## 常见的浏览器
浏览器是网页运行的平台常见的浏览器有谷歌Chrome、Safari、火狐Firefox、IE、Edge、Opera等。如下图所示
![](http://img.smyhvae.com/20191204_1900.png)
我们重点需要学习的是 Chrome 浏览器。
## 浏览器的市场占有份额
浏览器的市场占有份额:<https://tongji.baidu.com/research/site?source=index#browser>
![](http://img.smyhvae.com/20200322_1058.png)
上面这张图的统计时间是2020年2月。
## 浏览器的组成
浏览器分成两部分:
- 1、渲染引擎浏览器内核
- 2、JS 引擎
### 1、渲染引擎浏览器内核
浏览器所采用的「渲染引擎」也称之为「浏览器内核」,用于解析 HTML和CSS、布局、渲染等工作。渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。
**渲染引擎是浏览器兼容性问题出现的根本原因。**
渲染引擎的英文叫做 Rendering Engine。通俗来说它的作用就是读取网页内容计算网页的显示方式并显示在页面上。
常见浏览器的内核如下:
|浏览器 | 内核|
|:-------------:|:-------------:|
| chrome | Blink |
| 欧鹏 | Blink |
|360安全浏览器| Blink|
|360极速浏览器| Blink|
|Safari|Webkit|
|Firefox 火狐|Gecko|
|IE| Trident |
备注360的浏览器以前使用的IE浏览器的Trident内核但是现在已经改为使用 chrome 浏览器的 Blink内核。
另外,移动端的浏览器内核是什么?大家可以自行查阅资料。
### 2、JS 引擎
也称为 JS 解释器。 用来解析和执行网页中的JavaScript代码。
浏览器本身并不会执行JS代码而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码 。JS 引擎执行代码时会逐行解释每一句源码,转换为机器语言,然后由计算机去执行。
常见浏览器的 JS 引擎如下:
|浏览器 | JS 引擎|
|:-------------:|:-------------|
|chrome、欧鹏 | V8 |
|Mozilla Firefox 火狐|SpiderMonkey1.0-3.0/ TraceMonkey3.5-3.6/ JaegerMonkey4.0-|
|Safari|JavaScriptCore也称为Nitro是 WebKit 引擎的一部分|
|IE|Trident |
|Edge|Chakra。此外ChakraCore是Chakra的开源版本可以在不同的平台上使用。 |
|Opera|Linear A4.0-6.1/ Linear B7.0-9.2/ Futhark9.5-10.2/ Carakan10.5-|
补充说明:
1、SpiderMonkey 是第一款 JavaScript 引擎,由 JS语言的作者 Brendan Eich 开发。
2、先以WebKit为例WebKit上由两部分组成
- WebCore负责解析HTML和CSS、布局、渲染等工作。
- JavaScriptCore负责解析和执行JavaScript 代码。
参考链接:
- [主流浏览器内核及JS引擎](https://juejin.im/post/5ada727c518825670b33a584)
## 浏览器工作原理
> 这一小段有些深入小白可以暂时跳过以后学习JS的时候再回来看。
浏览器主要由下面这个七个部分组成:
![](http://img.smyhvae.com/20180124_1700.png)
1、User InterfaceUI界面包括地址栏、前进/后退按钮、书签菜单等。也就是浏览器主窗口之外的其他部分。
2、Browser engine 浏览器引擎用来查询和操作渲染引擎。是UI界面和渲染引擎之间的**桥梁**。
3、Rendering engine渲染引擎用于解析HTML和CSS并将解析后的内容显示在浏览器上。
4、Networking (网络模块):用于发送网络请求。
5、JavaScript InterpreterJavaScript解析器用于解析和执行 JavaScript 代码。
6、UI BackendUI后端用于绘制组合框、弹窗等窗口小组件。它会调用操作系统的UI方法。
7、Data Persistence数据存储模块比如数据存储 cookie、HTML5中的localStorage、sessionStorage。
参考链接:(关于浏览器的工作管理,下面这篇文章,是精品中的精品,是必须要知道的)
- 英文版:[How Browsers Work: Behind the scenes of modern web browsers](https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/)
- 中文版:[浏览器的工作原理:新式网络浏览器幕后揭秘](https://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/)
---
本作品采用[知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议](https://creativecommons.org/licenses/by-nc-sa/4.0/)进行许可。
![](https://img.smyhvae.com/20210329_1930.png)