百度

HTTP 请求的完全过程

2021-03-30 11:34:49 阅读:112
1、浏览器根据域名解析 IP 地址

DNS 查询顺序:浏览器缓存 → 系统缓存 → 路由器缓存 →ISP DNS 缓存 → 递归搜索。如果查找不到则继续向下查找,如果查到则解析并结束。

- 浏览器缓存: 每个域名会默认缓存 60s,容量 1000 条
1. 查看: 通过地址:chrome://net-internals/#dns 查看浏览器内的 dns 缓存
2. 清除: 点击浏览器上清除按钮直接清除
- 系统缓存
1. 查看: 在 cmd 控制台,通过命令 ipconfig /displaydns 查看系统内的 dns 缓存
2. 清除: 通过命令 ipconfig /flushdns 清空 dns 缓存
- 路由器缓存
- ISP(互联网服务提供商) DNS 缓存

2、浏览器与 WEB 服务器建立一个 TCP 连接

过程: TCP 的 3 次握手,点击查看

3、浏览器给 WEB 服务器发送一个 HTTP 请求

http 请求报文包含以下四部分

- 请求行(request line): 分为三个部分, 它们之间用空格分割
1. 请求方法: 8 种,点击查看
2. 请求地址: 由“名/值”对组成,每行一对, 名和值之间使用冒号分隔。
3. HTTP 协议版本
- 请求头部(headers)
- 空行(blank line)
- 请求数据(request body)

4、服务器端响应 HTTP 请求,浏览器得到 HTML 代码

HTTP 响应报文由四个部分组成

- 状态行(status line)
- 相应头部(headers)
- 空行(blank line)
- 响应数据(response body)

5、浏览器解析 HTML 代码,并请求 HTML 代码中的资源

过程: 浏览器拿到 HTML 文件后,开始解析 HTML 代码,遇到静态资源时,就向服务器端去请求下载,这个过程浏览器会对 HTML 代码进行重排和重绘,点击查看。

6、关闭 TCP 连接,浏览器对页面进行渲染呈现给用户

过程: TCP 的 4 次挥手 点击查看。


HTTP 请求的完全过程

来源:网络分享

0