从输入一个URL到页面加载完成前端都经历了什么?

从URL到页面呈现出来大致分为两个部分:网络通信和页面渲染

1.DNS域名解析

  浏览器能访问的资源都是通过IP访问的,但是为了方便我们记忆和使用网站都是使用的域名,所以当我们输入一个域名的时候就需要浏览器进行域名解析。浏览器解析域名的流程是先从浏览器缓存中查找是否有该域名,浏览器缓存中没有则从系统缓存中查找(系统缓存中查找主要是在本地host文件中查找),系统缓存中没有则从路由缓存中查找,路由缓存没有则从本地DNS服务器中查找,本地DNS服务器中没有则从其他DNS服务器中查找,其他服务器中查找的规则是递归查找,查找的顺序是(根域名服务器,一级域名服务器,二级域名服务器,三级域名服务器)

2.三次握手

  域名解析成功之后,客户端和服务器端就会有三次握手,试探链接,用语义化的语言解释就是。

  客户端    ----》服务器端               你好,我们可以链接吗

       服务器端 ----》客户端                  可以,你确定要连接是吧?

  客户端----》服务器端                    确定,我们链接吧

3.发送HTTP请求,接受HTTP响应

  连接成功之后就可以开始传输数据了,传输数据需要将用户输入的URL封装成HTTP Request请求报文,发送到服务器,服务器收到请求后会发出应答,即响应数据。

  HTTP请求报文格式:请求报头和请求主体。请求报头包括请求方式(GET/POST/DELETE/PUT)、请求资源路径、HTTP版本号,返回的信息是否需要缓存,以及客户端是否发送cookie等

  常见状态码 :

  

4.断开TCP连接(4次挥手)

  客户端---》服务器端    好了,我们断开连接吧?

  服务端---》客户端     好的,我在检查一哈有没有需要在发给你的信息?

  服务端---》客户端   好了,我们可以断开连接了

  客户端---》服务端 好的

5.浏览器解析HTML代码以构建DOM树-》构建渲染树-》布局渲染树-》绘制渲染树,渲染树只包括需要显示在页面中的DOM元素,像<head>元素或display属性值为none的元素都不在渲染树中,请求JS,CSS等资源,最后进行页面渲染,呈现给用户

  

原文地址:https://www.cnblogs.com/advanceCabbage/p/10837411.html