关于浏览器运行原理的初步认知

在对浏览器运行原理的认知过程中我们首先需要精细的了解一些“概念”

这些“概念”也许理解起来很容易,但没有精细理解的时候很容易忽视

而在没有精细了解这些“概念”的前提下去初步认知浏览器的运行原理,很容易有一种雾里看花的感觉

什么是浏览器?

网页浏览器(英语:web browser),常被简称为浏览器,是一种用于检索并展示万维网信息资源的应用程序。这些信息资源可为网页、图片、影音或其他内容,它们由统一资源标志符标志。信息资源中的超链接可使用户方便地浏览相关信息。
网页浏览器虽然主要用于使用万维网,但也可用于获取专用网络中网页服务器之信息或文件系统内之文件。 ——《百度百科

在外行看来浏览器是查询资料,搜索网站的一款好用的软件

而在内行看来浏览器是指可以显示网页服务器或者文件系统的HTML文件(标准通用标记语言的一个应用)内容,并让用户与这些文件交互的一种软件

浏览器的主要组件

(1)可见的用户界面:包括地址栏、 前进/后退按钮、 书签菜单等。 除了浏览器主窗口显示的请求的页面外,其他显示的各个部分都属于用户界面

(2)浏览器引擎 - 在用户界面和呈现引擎之间传送指令

(3)渲染引擎 - 负责显示请求的内容。 如果请求的内容是 HTML,它就负责解析 HTML 和 CSS 内容,并将解析后的内容显示在屏幕上

(4)网络 - 用于网络调用,如 HTTP 请求。 其接口与平台无关,为所有平台提供底层实现

(5)用户界面后端 - 用于绘制基本的窗口小部件,比如组合框和窗口。 其公开了与平台无关的通用接口,而在底层使用操作系统的用户界面方法

(6)JavaScript 解释器 - 用于解析和执行 JavaScript 代码

(7)数据存储 - 这是持久层。 浏览器需要在硬盘上保存各种数据,例如 Cookie。 新的 HTML 规范(HTML5) 定义了“网络数据库” ,这是一个完整的浏览器内数据库

浏览器的主要功能

浏览器的主要功能是将用户选择的web资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中

而这些资源的格式通常是HTML,也包括PDF、image及其他浏览器可以识别并解释出来的格式(js有一种加密的说法,加密后直接放进js文件,人读不懂,但是浏览器读的懂,并不需要解密算法)

浏览器的处理流程

1、输入url

2、查看浏览器缓存,看是否有缓存,如果有缓存,继续查看缓存是否过期,如果没有过期,直接返回缓存页面,如果没有缓存或者缓存过期,发送一个请求。

3、浏览器解析url地址,获取协议、主机名、端口号和路径。

4、获取主机ip地址过程

(1)浏览器缓存

(2)主机缓存

(3)hosts文件

(4)路由器缓存

(5)DNS缓存

(6)DNS递归查询

5、浏览器发起和服务器的TCP连接,执行三次握手

6、三次握手连接后,浏览器发送一个http请求

7、服务器收到请求,转到相关的服务程序,期间可能需要连接并操作数据库(主要分get和post请求)。

8、服务器看是否需要缓存,服务器处理完请求,发出一个响应

9、服务器并根据请求头包含信息决定是否需要关闭TCP连接(如需关闭,则需要四次挥手过程)

10、浏览器对接收到的响应进行解码

11、浏览器解析收到的响应并根据响应的内容(假如是HTML文件)进行构建DOM树,构建render树,渲染render树等过程

12、处理嵌入的其他资源如css文件、js文件、图片文件、音视频等文件,处理过程类似上面的步骤

对浏览器运行原理的初步认知

在了解以上内容之后,我们就很容易对浏览器的运行原理进行初步的认知

获取url–>获取可解释的资源文件–>解释–>渲染显示可视化页面

尽管这个初步认知的说法有些笼统,但详细分一下我们都可以从上面的内容找的到每一步的稍

具体方法,而这只是初步认知

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值