从用户输入URL到页面展示---2020-09-26

103 阅读2分钟

用户发出URL请求到页面开始解析的这个过程,叫做导航


从输入URL到页面展示

  1. 用户输入: 用户输入的内容可分为搜索内容和请求的URL。
  • 如果用户的输入为搜索内容,那么地址栏会使用浏览器的默认搜索引擎,合成带有关键字的URL
  • 如果用户的输入为URL,地址栏会根据规则合成完整的URL
  1. URL的请求过程:
  • 浏览器进程通过IPC发送URL到网络进程
  • 网络进程查找本地缓存,如有缓存,直接返回缓存资源,如果没有缓存,DNS解析(HTTPS协议还需要建立TLS连接),之后建立TCP连接,发起请求真正的URL请求是在网络进程发起
  • 服务器返回数据,网络进程接受响应并解析响应头。根据状态码判断是否需要重定向,如果需要重定向,则在响应头中取出location字段的URL,重新发起请求,如果不需要重定向,则解析返回数据。解析数据的格式是根据content-type判断的,浏览器会根据content-type的值决定决定如何显示响应体的内容。
  1. 准备渲染进程:通常情况下,浏览器会为每一个页面开启一个渲染进程,但同一站点的页面会运行在一个渲染进程中。(同一站点指的是根域名+协议相同)。采用渲染进程策略:如果从一个页面打开另一个页面,而打开的页面和当前页面属于同一站点,那么新页面会复用页面的渲染进程。。
  2. 提交文档,进入到渲染进程:浏览器进程将网络进程收到的HTML数据提交到渲染进程。
  3. 确认提交:渲染进程向浏览器进程发送确认提交,到此导航结束

  1. 渲染阶段:一旦文档被提交,渲染进程便开始解析和资源的加载,一旦页面生成完成,渲染进程就会发送一个信息给浏览器进程,告诉浏览器进程。

总结:

  1. 服务器可以根据响应头来控制浏览器的行为,如跳转,网络数据类型判断等。
  2. Content-Type字段的值被浏览器判断为下载类型,那么该请求会提交给浏览器的下载管理器,同时该URL请求导航结束,但如果是HTML,浏览器则会继续导航;流程。