在浏览器里,从输入URL到页面展示,这中间发生了什么?这是一道经典的面试题,涉及到网络、操作系统、Web等一系列知识。本文就通过这个流程,探索其中涉及到的知识点。
从浏览器进程看浏览器都要做些什么
在chrome的任务管理器中可以看到,chrome启动进程主要包括:
- 浏览器主进程:负责界面展示、用户交互、子进程管理,同时提供存储功能。
- 网络(Network)进程:负责页面网络资源加载。
- GPU进程:实现页面渲染效果。
- 多个渲染进程:将HTML、CSS和JavaScript转换为用户可以与之交互的网页,排版引擎Blink和Javascript引擎V8也是在该进程中运行,默认情况下,chrome会为每个Tab标签创建一个渲染进程。出于安全考虑,渲染进程都是运行在沙箱模式下。
- 多个插件进程:负责插件的运行,因为插件容易崩溃,所以需要通过插件进程来隔离,保证插件进程崩溃不会对浏览器和页面造成影响。
所以从输入一个URL到页面展示中,浏览器大概要做下面几件事
- 找到目标服务器,获取到HTML、CSS、JS图片等资源
- 根据获取到的资源渲染页面,展示在窗口中
- 提供交互,响应用户的操作
接下来就通过这个顺序,去搞清楚每一步都涉及到哪些问题。