输入url地址之后发生了什么

65 阅读2分钟
  1. 浏览器自动补全协议、端口:

    http协议默认端口是80 ,https协议默认端口是 443

  2. 进行URL编码,将非ASCII码转换成ASCII码

  3. 浏览器根据URL地址来查找本地缓存,根据缓存规则看是否命中缓存,若命中缓存则直接使用缓存,不用在发出请求

  4. 通过DNS解析找到服务器IP地址

  5. 浏览器向服务器发出TCP连接申请,完成三次握手后,建立通信连接

  6. 若使用了HTTPS协议,还会进行SSL握手,建立加密信道,使用SSL握手时,会确定是否使用HTTP2

    http2要求必须是HTTPS协议

  7. 浏览器确定要附带哪些Cookie到请求头中

  8. 浏览器设置好请求头、协议版本、cookie、发出请求

  9. 服务器处理请求,进入后端处理流程。随后,服务器响应一个HTTP报文交给浏览器

  10. 浏览器根据使用的协议版本,以及connection字段的约定,决定是否要保留TCP连接

  11. 浏览器根据响应状态码决定如何处理这一次响应

  12. 浏览器根据响应头中的Content-Type字段识别响应类型,如果是 text/html ,则对响应体的内容进行 html 解析,否则进行其他处理

  13. 浏览器根据响应头的其他内容完成缓存、 cookie的设置

  14. 浏览器从上到下解析HTML ,遇到外部链接资源,则进一步请求资源

  15. 解析过程中生成DOM、CSSOM树,进一步将二者结合形成Render树,随后对渲染树中的每个节点计算位置和大小(reflow),最后利用GPU把每个节点绘制到屏幕(repaint)

  16. 在解析过程中还会触发一系列事件,DOM树完成后会触发DOMContentLoaded事件,当所有资源加载完毕后会触发load事件