浏览器工作原理
2017-08-23 本文已影响27人
小小小魔仙
目前使用的主流浏览器有五个:IE、Firefox、Safari、Chrome和 Opera浏览器。
浏览器的主要功能
浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示您想要访问的网络资源(资源一般是指 HTML 文档).
浏览器解读HTML文件的方式是在 HTML 和 CSS 规范中指定的。这些规范由W3C进行维护。
现在浏览器因为没有完全遵守这些规范,所有有了兼容性的问题。
浏览器的高层结构(High Level Structure)
image.png- 用户界面 - 包括地址栏、前进/后退按钮、书签菜单等。
- 浏览器引擎 - 在用户界面和渲染引擎之间传送指令。
- 渲染引擎 - 负责显示请求的内容。如果请求的内容是 HTML,它就负责解析 HTML 和 CSS 内容,并将解析后的内容显示在屏幕上。
- 网络 - 用于网络调用,比如 HTTP 请求。
- 用户界面后端 - 用于绘制基本的窗口小部件,比如组合框和窗口。
- JavaScript 解释器。用于解析和执行 JavaScript 代码,比如chrome的javascript解释器是V8。
- 数据存储。这是持久层。浏览器需要在硬盘上保存各种数据,例如 Cookie。
ps: Chrome 浏览器为每个标签页(Tab)都分配了各自的渲染引擎实例,每个标签页都是一个独立的进程(即每个标签页面都在独立的“沙箱”内运行,在提高安全性的同时,一个标签页面的崩溃也不会导致其他标签页面被关闭)。
渲染引擎: 职责就是渲染(解析,转换),即在浏览器窗口中显示请求回来的内容。
内容拿回来之后是通过
解析html以构建dom树 -> 构建render树 -> 布局render树 -> 绘制render树
一步步完成的。
这个过程是逐步完成的,什么内容拿回来早就先把什么内容呈现在屏幕上,这样子就可以提高用户体验;并不会等到所有的html都解析完成之后再去构建和布局render树。