从输入URL到页面加载完成都发生了什么?

1、URl加载过程

2、详解

  • DNS解析
    将域名解析成IP地址,首先,会在 本地域名 服务器中查询IP地址,如果没有找到会向 根域名 服务器发送一个请求,如果根域名服务器也没有找到,会向 顶级域名服务器com 发送一个请求,依次类推下去,直到最后本地域名服务器得到IP地址并把它缓存到本地
    解析过程: . -> .com -> google.com. -> www.google.com.

    • DNS缓存——为了减少请求次数
      DNS 具体的查找过程包括:浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存
    • DNS负载均衡——DNS服务器会返回一个跟用户最接近的点的IP地址给用户
      举例:如果西安有服务器,北京也有,你处在西安,就会从西安的服务器上获取
  • TCP连接

  • 第一次:建立连接时,客户端向服务器发送syn=i,并进入SYN_SENT状态,等待服务器确认

  • 第二次:服务器收到syn,确认SYN(ack=i+1),同时也发送一个syn=j包,并进入SYN_RECV状态

  • 第三次:客户端收到服务器的syn=j,ack=i+1后,继续向服务器发送确认包ack=j+1,,客户端和服务器进入ESTABLISHEC状态,三次握手完成,TCP连接建立成功

  • 发送HTTP请求

  • 主要发生在客户端,HTTP请求报文是由三部分组成: 请求行, 请求报头和请求正文。

  • 常见的请求报头有: Accept, Accept-Charset, Accept-Encoding, Accept-Language, Content-Type, Authorization, Cookie, User-Agent

  • 服务器处理请求并返回HTTP报文

  • HTTP响应报文也是由三部分组成:状态码, 响应报头和响应报文

  • 浏览器解析渲染页面

    • 浏览器是一个边解析边渲染的过程,首先浏览器解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,页面在首次加载时必然会经历reflow(回流)和repain(重绘)
  • 连接结束

参考文章推荐:
从输入URL到页面加载发生了什么
从输入 URL 到页面加载完成的过程中都发生了什么事情?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容