1.用户输入
- 地址栏会判断输入的关键字是搜索内容还是请求的URL
- 如果是搜索内容,使用浏览器搜索引擎合成新的搜索关键字的URL
- 符合URL规则,可能有补全操作
2.URL 请求过程
- 浏览器进程会根据进程间通信把URL发送至网络进程,接受到后其会发起真正的URL请求流程
- 网络进程查找本地缓存是否缓存了该资源,如果有则返回资源给浏览器进程,如果没有则进入网络请求流程
- 网络请求流程1:查找DNS缓存是否缓存了该地址,缓存了使用,没缓存的话通过DNS域名系统获取请求域名的IP地址
- 网络请求流程2: 利用IP地址和服务器建立TCP连接(三次握手)
- 网络请求流程3: 建立连接后构建HTTP请求报文(请求行、三种首部字段、主体),把该域名下cookie附加到首部字段,向服务器发送构建的请求信息。
- 网络请求流程4:服务器返回生成的HTTP响应报文(状态行、三种首部字段、主体)给网络进程,解析HTTP响应报文
- 解析报文流程1(重定向):如果状态行是301或302,则网络线程从响应首部字段读取重定向地址,重新发起网络请求
- 解析报文流程2(响应数据类型处理):根据首部字段中的Content-Type决定如何显示响应体内容
- 准备渲染进程,如果页面同属一个站点(协议、根域名相同)的话,公用一个渲染进程策略。
- 提交文档:浏览器进程将网络进程接收到的 HTML 数据提交给渲染进程。渲染进程接收完成后通知浏览器进程更新浏览器界面状态:安全状态、地址栏URL、前进后退历史状态,更新web页面
- 渲染阶段:渲染进程开始页面解析和子资源加载