从输入一个网址到浏览器显示页面经历的过程

379 阅读2分钟

输入一个网址到浏览器显示页面经历的过程

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树合并,形成渲染树,树形成之后,浏览器对它进行渲染