简析HTTP的请求流程

897 阅读1分钟

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. 重定向

还有一种情况,即可能发生重定向。