美文网首页
从输入URL到页面显示,中间发生了什么?

从输入URL到页面显示,中间发生了什么?

作者: CRJ997 | 来源:发表于2020-01-13 19:54 被阅读0次

    这篇主要是学习了极客时间的《浏览器原理与实践》,写的一篇笔记。
    以chrome浏览器为例
    chrome浏览器在渲染一个新的页面的时候,会创建四个进程:

    1. 浏览器进程
    2. 渲染进程(获取的内容来自网络,运行在沙箱模式下)
    3. 网络进程
    4. 插件进程(插件不安全,运行在沙箱模式下)

    步骤(HTML文档):

    1. 用户输入URL
    2. 浏览器进程判断这是否是一个合法的网址。如果不是,使用浏览器默认的搜索引擎去搜索对应的内容,如果是,那么进行协议的拼装,然后把对应的URL通过进程间通信机制(IPC)转交给网络进程。
    3. 网络进程根据获取的URL,去获取缓存中是否有未过期的缓存,如果有,直接从缓存中获取数据,如果没有,发起HTTP请求:
      3.1 首先进行DNS解析,获取IP地址。
      3.2 建立TCP连接,如果是HTTPS,那么还需要建立TLS连接。
      3.3 给服务器发送请求数据。
      3.4 服务器在接收到请求数据之后,根据请求数据生成响应数据,然后发送给客户端。
      3.5 网络进程接收到响应数据之后,解析响应数据,如果发现响应头是301,302之类的状态码,那么从头部的Location字段获取真实的url地址,重新发起HTTP请求。
      网络进程解析响应头发现是200的状态码,那么网络进程会根据响应头中的content-type的类型去解析数据,并告诉浏览器,准备开始渲染了。浏览器便会开始准备渲染进程
    4. 浏览器进程在接收到网络进程发送过来的响应头数据之后,便进入一个叫“提交文档”的阶段。渲染进程会和网络进程之间构筑传输数据通道,网络进程把数据发送给渲染进程,当文档数据传输完成的时候,渲染进程会提交“确认提交”信息给浏览器进程,这时候浏览器便会开始进行页面的更新,更新状态栏,更新URL地址栏,更新Web页面,更新安全状态(地址栏左侧的锁)。同时渲染进程解析文档信息,并构建渲染树。一边构建一边进行渲染。这时候页面就出来了。
    5. 页面渲染完毕之后,渲染进程通知浏览器,可以不显示loading状态了,这时候页面也就完整的出来了。

    相关文章

      网友评论

          本文标题:从输入URL到页面显示,中间发生了什么?

          本文链接:https://www.haomeiwen.com/subject/xangactx.html