HTTP 请求流程
前言
本文为《浏览器工作原理与实践》的读书笔记。
总体流程
HTTP请求的总体流程,如下图:
1. 构建请求
浏览器构建请求行信息,格式:GET /index.html HTTP1.1
2. 查找缓存
浏览器缓存:这是一种在本地保存资源副本,以供下次请求时直接使用的技术。
3. DNS域名解析
DNS域名系统:负责域名和IP地址的一一映射。
同样地,浏览器还提供了 DNS 数据缓存服务。
4. 等待 TCP 队列
对于HTTP1.1而言,Chrome使用同一个域名同时最多只能建立 6 个 TCP 连接,超出数量则需排队。
5. 建立 TCP 连接
该阶段涉及TCP三次握手过程。
6. 发送 HTTP 请求
HTTP请求数据格式,如下图:
7. 返回请求
服务器响应的数据格式,如下图:
8. 断开连接
但需要注意的是,如果浏览器或者服务器在其头信息中加入了如下代码,则不会断开连接。
Connection:Keep-Alive
9. 重定向
还有一种情况,即可能发生重定向。