浏览器运行原理简单的认识

参考了一些关于浏览器运行原理的资料,简单了解一下
(一)什么是浏览器
浏览器是指可以显示网页服务器或者文件系统的HTML文件(标准通用标记语言的一个应用)内容,并让用户与这些文件交互的一种软件。
浏览器的功能:主要功能就是向服务器发出请求,在浏览器窗口中展示您选择的网络资源(可以是图片,文档,视频和一些其他类型的文件)。资源的位置由用户使用URI(统一资源标符)指定。
目前使用的主流浏览器有五个:Internet Explorer、 Firefox、 Safari、 Chrome 和 Opera。
浏览器按照引擎分类:
Trident引擎:Internet Explorer
Webkit引擎:Chrome(28版本后基于blink,blink是webkit的一个分支)和Safari
Gecko引擎:Firefox
Presto引擎:早期Opera采用,后用webkit引擎
(二)浏览器的主要组件
(1)用户界面:包括地址栏、 前进/后退按钮、 书签菜单等。
(2)浏览器引擎 :在用户界面和呈现引擎之间传送指令。
(3)渲染引擎 :负责显示请求的内容。
(4)网络 :用于网络调用,如 HTTP 请求。
(5)用户界面后端 :用于绘制基本的窗口小部件,比如组合框和窗口。
(6)JavaScr:持久层。 浏览器需要在硬盘上保存各种数据,例如 Cookie。 新的 HTML 规范(HTML5) 定义了“网络数据库” ,这是一个完整的浏览器内数据库。
浏览器的组成图

三)浏览器内核工作原理
(1)渲染引擎
渲染引擎在浏览器窗口中显示所请求的内容,浏览器内核分成两部分:渲染引擎和js引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎,所以渲染引擎也称为浏览器内核。渲染引擎一开始会从网络层获取请求文档的内容,通常以8K分块的方式完成。 获取了文档内容之后,渲染引擎开始正式工作。
渲染引擎解析HTML文档,并将文档中的标签转化为DOM节点树,即” 内容树” 。 同时,它也会解析外部CSS文件以及style标签中的样式数据。 这些样式信息连同HTML中的” 可见内容” 一道,被用于构建另一棵树——” 渲染树(Render树)” 。渲染树构建完毕之后,将会进入” 布局” 处理阶段,即为每一个节点分配一个屏幕坐标。 再下一步就是绘制(painting),即遍历render树,并使用UI后端层绘制每个节点。
解析的过程可以分成两个子过程:词法分析和语法分析。
又可以分为html解析,css解析
(二)js引擎
JS引擎是一个专门处理JS脚本的虚拟机,专门设计来解释和执行的 JavaScript 代码。 JS引擎会加载你的源代码,把它分解成字符串,把这些字符串转换成编译器可以理解的字节码,然后执行这些字节码。不同浏览器有不同的JS引擎
(四)前端处理
1、输入url
2、查看浏览器缓存,看是否有缓存。
3、浏览器解析url地址,获取协议、主机名、端口号和路径。
4、获取主机ip地址过程
5、浏览器发起和服务器的TCP连接
6、浏览器发送一个http请求
7、服务器收到请求,转到相关的服务程序
8、服务器看是否需要缓存,服务器处理完请求,发出一个响应
9、服务器并根据请求头包含信息决定是否需要关闭TCP连接
10、浏览器对接收到的响应进行解码
11、浏览器解析收到的响应并根据响应的内容(假如是HTML文件)进行构建DOM树,构建render树,渲染render树等过程
12、处理嵌入的其他资源如css文件、js文件、图片文件、音视频等文件

博客参考了以下资料
https://blog.csdn.net/u014744118/article/details/80698602
http://www.iefans.net/liulanqi-ruhe-gongzuo-yuanli/

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值