输入一个网址到浏览器显示页面经历的过程
1.DNS解析获取IP地址
- www.baidu.com 域名 就是一台服务器的别名 你要访问一台服务器必须通过一个ip地址
- DNS 域名解析系统 本质就是一个数据服务器 里面就存储了域名和IP的对应关系
- 最后会得到一个IP地址,通过这个IP地址,才能访问一台服务器
- 得到IP地址后,就知道我们要访问哪一台服务器了
2.发起TCP连接
类似于先拨通电话,只有先拨通电话后,才能进行通信交流
信号通道打通后就可以进行数据通信(此过程包括三次握手)
3.发送HTTP请求
请求是需要规则,你必须要满足一个规则(即一个协议),这个规则就是HTTP规则,当点击回车时,请求就发出来
4.服务器处理请求并返回HTTP报文
服务器得到浏览器的请求,然后服务器进行处理,整合你需要的资源,服务器把资源发给浏览器
5.浏览器解析渲染页面
浏览器对它得到的资源进行解析,解析完进行渲染并显示
6.结束连接
在服务器和浏览器结束连接过程(此过程包括4次挥手)
注意:整个过程也叫一个HTTP事务
-
三次握手与四次挥手
三次握手:
客户端向服务器发送连接通道请求
服务器确认收到连接请求,并且向客户端发送连接请求
客户端确认收到请求服务器的连接请求
就这样,服务器和客户端就成功建立连接,二者之间进行通信
四次挥手:
甲方发出断开连接的请求
乙方确认收到
乙方发出断开连接的请求
甲方确认收到
-
为何会进行四次挥手而只进行三次握手呢?
当甲方发出断开连接的请求后,乙方确认收到后。可能乙方还有未处理完的数据还没有传送给甲方,所以乙方不能立即断开连接
-
什么是HTTP协议?
HTTP协议其实就是客户端和服务器建立通信的一套规则(也就是协议)
HTTP协议是位于应用层的一种协议,而HTTP协议是基于TCP协议
-
浏览器的渲染机制
打开一个浏览器选项卡,就是一个进程,操作系统就会给这个进程分配cpu和内存
进程中有多个线程,其中两个线程,一个是js线程,一个是UI线程,对于html和css就是UI线程处理,UI线程中把HTML构建成CSS树,DOM树和CSS树合并,形成渲染树,树形成之后,浏览器对它进行渲染