文章目录
-
- [一、HTTP 请求报文包含什么?](#一、HTTP 请求报文包含什么?)
-
- [1️⃣ 请求行(Request Line)](#1️⃣ 请求行(Request Line))
- [2️⃣ 请求头(Request Headers)](#2️⃣ 请求头(Request Headers))
- [3️⃣ 空行](#3️⃣ 空行)
- [4️⃣ 请求体(Request Body)](#4️⃣ 请求体(Request Body))
- [二、HTTP 响应报文包含什么?](#二、HTTP 响应报文包含什么?)
-
- [1️⃣ 状态行(Status Line)](#1️⃣ 状态行(Status Line))
- [2️⃣ 响应头(Response Headers)](#2️⃣ 响应头(Response Headers))
- [3️⃣ 空行](#3️⃣ 空行)
- [4️⃣ 响应体(Response Body)](#4️⃣ 响应体(Response Body))
一、HTTP 请求报文包含什么?
客户端发给服务器的内容通常包括:
1️⃣ 请求行(Request Line)
告诉服务器三件事:
-
请求方式(GET、POST、PUT、DELETE...)
-
请求路径(URL)
-
协议版本(HTTP/1.1、HTTP/2)
示例:
GET /api/user HTTP/1.1
2️⃣ 请求头(Request Headers)
一组键值对,用来描述"这封信的背景信息",例如:
-
Host:访问的主机
-
User-Agent:客户端类型
-
Accept:可接受的数据格式
-
Content-Type:发送的数据类型
-
Authorization:身份认证信息
-
Cookie:会话信息
3️⃣ 空行
用来分隔头部和正文。
4️⃣ 请求体(Request Body)
只有 POST、PUT 等才有,用来携带数据,例如:
-
JSON
-
表单数据
-
文件数据
二、HTTP 响应报文包含什么?
服务器回给客户端的内容包括:
1️⃣ 状态行(Status Line)
-
协议版本
-
状态码(200、404、500...)
-
状态描述
示例:
HTTP/1.1 200 OK
2️⃣ 响应头(Response Headers)
常见的有:
-
Content-Type:返回数据类型
-
Content-Length:数据长度
-
Set-Cookie:设置 Cookie
-
Cache-Control:缓存策略
-
Server:服务器类型
3️⃣ 空行
4️⃣ 响应体(Response Body)
真正返回的数据,例如:
-
HTML 页面
-
JSON 数据
-
图片文件
-
视频流