输入URL 到页面展示
流程图
1. 用户输入
- 如果是搜索内容,地址栏会使用浏览器的默认搜索引擎合成搜索关键字的url
- 如果输入内容符合url规则,浏览器会根据规则,并加上协议,合成为完整的URL
2. URL请求过程
- 浏览器进程会吧进程间通信(IPC)把URL请求发送倒网络进行
- 网络进程接收到URL请求后,会查本地进程是否缓存了该资源,有则直接返回资源给浏览器进程
- 如果没有,则进行DNS解析,获取IP地址。如果是HTTPS请求,还需要建立TLS连接
- 理网络进程利用IP地址和服务器建立连接,完成后,会根据请求行,请求头等信息,并把和该域名相关的cookie信息附加到请求头,然后向服务器端发送构建请求信息
- 服务器接受到请求信息后,根据请求信息生成响应数据(包含响应头,响应行,响应体等信息)并发给网络进程
- 网络进程接收到响应行和响应头之后,解析响应头内容
- 解析响应头为301或者302,重定向到响应头里面的Location字段的地址
- 解析响应头为302,会解析响应数据类型,解析响应数据类型为text/html,则浏览器会准备渲染进程
- 若为其他响应数据类型,则有对应的处理
3. 准备渲染进程
- 每个标签对应一个渲染进程
- 如果新页面和当前页面是属于同一个站点的话,那么新页面就会复用父页面的渲染进程
4. 提交文档(URL请求的响应体数据)
- “提交文档消息”由浏览器进程发出,渲染进程接收到提交文档后,会和网络进程建立传输数据的管道
- 当数据传输完成后,渲染进程会返回“确认提交”的消息给到浏览器进程
- 浏览器进程收到确认提交消息后,会更新浏览器界面状态。包括安全转态、地址栏URL、前进后退的历史状态,并更新web压面
5. 渲染阶段
页面完成后,渲染进程会发送一个消息给浏览器进程,浏览器接收到消息后,会停止变迁的图标变化