用户输入过程
-
地址栏
omnibox
判断用户的输入是搜索内容还是URL链接:-
如果是搜索内容,地址栏使用默认的搜索引擎合成带搜索关键字的URL链接
-
如果输入内容符合URL规则,则加上协议合成完整的URL链接
-
-
用户输入完成后按下回车键,浏览器导航栏显示加载状态,页面仍呈现当前状态,此时需等待提交文档阶段。
当前页面即将被替换成新的页面,
beforeunload
允许在页面退出前执行数据清理操作,并询问用户是否要离开当前页面,例如未提交完成的表单。
URL请求过过程
- 浏览器进程通过进程间通信IPC将URL请求发送给网络进程;
- 网络进程接收到URL请求,开始URL请求的流程:本地缓存中查找是否有该资源,如果有直接返回给浏览器进程;否则进入网络请求流程;
- 请求DNS服务器返回域名对应的IP地址和端口号:如果DNS数据缓存服务有当前域名信息,直接返回;否则,发起请求获取域名解析出来的IP和端口号(HTTP默认80,HTTPS默认443,如果是https请求,还需要建立TLS连接);
- 利用IP地址和服务器建立连接;
- 浏览器构建请求行、请求头,把域名相关的Cookie等数据附加到请求头,发送给服务器;
- 服务器接受到请求信息后,生成响应数据,发给网络进程
重定向
接收到服务器返回的响应,如果状态码是301/302,则需要重定向到其它URL,网络进程会从响应头的Location
字段中读取重定向的地址,然后发起HTTP请求
❯ curl -I www.12306.cn
HTTP/1.1 302 Moved Temporarily # 需要重定向
Server: nginx
Date: Thu, 17 Aug 2023 08:22:24 GMT
Content-Type: text/html
Content-Length: 138
Connection: keep-alive
Location: https://www.12306.cn/index/
❯ curl -I https://www.12306.cn/index/
HTTP/1.1 200 OK
Date: Thu, 17 Aug 2023 08:22:43 GMT
Content-Type: text/html
Connection: keep-alive
Expires: Thu, 17 Aug 2023 06:35:33 GMT
Cache-Control: max-age=0
Age: 6430
X-Cache: HIT from cache.51cdn.com
X-Via: 1.1 PS-000-010U9202:9 (Cdn Cache Server V2.0), 1.1 PS-PEK-01Q2Q23:17 (Cdn Cache Server V2.0)
X-Ws-Request-Id: 64ddd8d3_PS-PEK-01D0O24_42078-18601
响应数据处理
浏览器根据Content-Type
字段判断响应体数据是什么类型。
Content-Type: text/html
准备渲染进程
Content-Type
的值是HTML类型,下面准备渲染进程。一般情况下,一个页面有一个渲染进程(同一站点的页面,子页面有可能复用父页面的渲染进程)
提交文档
- 浏览器进程将网络进程接收到的HTML数据发送给渲染进程;
- 渲染进程和网络进程建立传输数据的通道;
- 文档数据传输完成后,渲染进程返回“确认文档提交”;
- 浏览器更新页面状态(地址栏内容,安全小锁头,前进后退内容)
渲染过程
标签页图标加载动画停止,渲染进程开始页面解析和子资源加载。
未完待续……
标签:浏览器,请求,展示,URL,渲染,进程,页面 From: https://www.cnblogs.com/euler0525/p/17638096.html