在浏览器输入网址到看到页面经历了哪些过程?

一次完整的http请求过程

1、域名解析(DNS解析)

粗暴的想象一下:假设计算机网络是一张大网,A点和B点分别是这个网络中的一个节点,他们在网中都有标注自己的ID(IP地址),能够让其他节点找到他,但是这个地址却不好记忆,B点希望更多的人拜访他,给自己的IP绑定了一个名字(域名),这个名字很好记,其他节点很容易拜访他了。
浏览器要做的第一件事是查找域名的IP地址,这个过程叫域名解析。因为计算机在网络上进行通讯时只能识别如“61.135.169.125”之类的IP地址,不能认识域名,但是我们访问网站时,一般在浏览器地址栏中输入域名,就能看到所需要的页面,这是因为有一个叫“DNS服务器”的计算机自动把我们的域名“翻译”成了相应的IP地址,然后调出IP地址所对应的网页。

2、发起TCP连接请求(TCP的3次握手)

客户端向服务端发出HTTP请求前,客户端和服务端发送3个包以确认连接。
还是那张网,A点想拜访B点,这个想法可以有,但要守规矩,就好比在一个国家,法律就是约定好的规矩,每个人都要遵守。当A点通过浏览器向B点请求数据时,会向B点发出一个符合Http协议的请求,与B点建立连接,在这之前A点的浏览器要先与B点建立TCP连接,确保A点确实能够拜访到B点。
这个过程有点像这样的话:
A点:可以跟你建立连接吗?
B点:可以
A点:我知道了,马上连接

3、建立TCP连接后发起http请求

TCP三次握手建立连接成功后,客户端(浏览器)按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个具有标准格式的HTTP响应给客户端。

4、服务器响应http请求,浏览器得到html代码

服务器响应http请求,浏览器得到html代码

5、解析html代码,并请求html代码中的资源(如js、css、图片等)

服务器的web程序处理http请求,处理之后将数据(如html代码)响应给浏览器
浏览器拿到index.html文件后,就开始解析其中的html代码,遇到js/css/image等静态资源时,就向服务器端去请求下载(会使用多线程下载,每个浏览器的线程数不一样)

6、断开TCP连接(四次挥手)

指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。
又是那张网,A点B点连接后,准备断开:
A:我要断开连接,还有啥要给我的吗
B:没了,可以断开
A:请求断开
B:按下开关,关闭连接

7、浏览器对页面进行渲染呈现给用户

渲染流程
①、解析HTML生成DOM树
②、解析CSS生成CSSOM规则树
③、将DOM树与CSSOM规则树合并在一起生成渲染树
④、遍历渲染树开始布局,计算每个节点的位置大小信息
⑤、将渲染树每个节点绘制到屏幕(渲染树绘制)。

猜你喜欢

转载自blog.csdn.net/dreamingbaobei3/article/details/87859700
今日推荐