面试题:从输入url到页面展示 中间经历了什么

67 阅读2分钟

首先回顾一下浏览器各个进程的主要职责

浏览器进程:主要负责用户交互,文件存储,子进程管理

网络进程:提供网络下载功能

渲染进程:把从网络下载的 HTML、JavaScript、CSS、图片等资源解析为可以显示和交互的页面。因为渲染进程所有的内容都是通过网络获取的,会存在一些恶意代码利用浏览器漏洞对系统进行攻击,所以运行在渲染进程里面的代码是不被信任的。这也是为什么 Chrome 会让渲染进程运行在安全沙箱里,就是为了保证系统的安全。

1用户输入:

用户在页面上输入url地址浏览器标签页上的图标就会变成loading状态

2url请求过程

1浏览器进程把信息发给网络进程,网络进程发起url请求,首先进行DNS解析获取请求域名中的ip地址,利用ip地址喝TCP建立连接,然后浏览器进程构建相关的请求信息,向服务器发起请求

2 服务器收到信息后构建相应的响应信息,然后发送给网络进程,网络进程就会判断cur-type是什么类型,如果是下载类型那么该请求就会被提交到浏览器的下载管理器,如果是HTML就会继续执行导航流程

3 准备渲染进程,如果两个地址具有相同的协议喝域名那么就认为他们是同一个站点,同一站点就会复用渲染进程,否则就会新建一个渲染进程

4提交文档:浏览器进程将网络进程中准备好的资源提供给渲染进程

5渲染阶段:最后进入渲染阶段

此文章为10月Day09学习笔记,内容来源于极客时间《重学前端》,强烈推荐该课程