HTTP协议
HTTP协议
HTTP 协议的定义与三大特点、请求与响应的数据格式、GET 与 POST 的区别以及常见状态码
什么是 HTTP
Hyper Text Transfer Protocol,超文本传输协议,规定了客户端和服务器之间数据传输的规则。
只有在请求及响应中都遵循了统一的规则,服务端才能读懂客户端发送来的请求,客户端才能解析服务端响应的结果。
三大特点
| 特点 | 含义 |
|---|---|
| 基于文本的协议 | 请求和响应部分的协议内容为文本格式,底层通过 TCP 协议传输,稳定性强 |
| 基于请求-响应模型 | 一次请求对应一次响应,必须由客户端先发起请求,服务端才会返回响应 |
| 无状态 | 服务端不会记忆与客户端的历史交互信息,每次请求-响应都是独立的 |
“无状态”这一条是理解 AI 会话记忆的关键:AI 大模型的交互同样是无状态的,模型本身没有记忆,所谓”记得上一句”是客户端把历史消息一起发过去了。详见 实战-AI智能伴侣-会话记忆。
请求数据格式
一次 HTTP 请求由三部分组成:
| 部分 | 内容 | |
|---|---|---|
| 请求行 | 请求方式、资源路径、协议 | |
| 请求头 | 格式为 key: value | |
| 请求体 | 请求参数部分,GET 方式没有,POST 可以有 |
下面是抓到的真实请求数据(一个 POST 请求的完整报文):
.png)
对照着看三部分在哪:
POST /api/courses HTTP/1.1是请求行:请求方式是 POST,资源路径是/api/courses,协议版本 HTTP/1.1- 中间一串
key: value(Host、Content-Type、User-Agent等)是请求头 - 最后一行是请求体,这里放的是 JSON 格式的请求参数
GET 与 POST 的区别
| 对比项 | GET | POST |
|---|---|---|
| 参数位置 | 在请求行中,没有请求体 | 在请求体中 |
| 示例 | /api/courses?name=Python&status=1 | 请求体里放 JSON 等数据 |
| 大小限制 | 浏览器中请求参数大小有限制 | 请求大小没有限制 |
响应数据格式
| 部分 | 内容 |
|---|---|
| 响应行 | 协议、状态码 |
| 响应头 | 格式为 key: value |
| 响应体 | 存放服务端响应的数据 |
这是上面对应的真实响应数据:

HTTP/1.1 200是响应行:协议版本 + 状态码 200(请求成功)- 中间是响应头(
Server、Date、Content-Type等) - 最后是响应体:
{code: 1, msg: "success", data: null}
常见状态码
| 状态码 | 含义 |
|---|---|
| 200 | 客户端请求成功 |
| 400 | 请求参数错误 |
| 404 | 请求资源不存在,url 输入有误,或者网站资源被删除了 |
| 500 | 服务器发生了不可预期的错误 |
排查调用大模型接口报错的顺序:先看状态码。400 多半是请求体写错(例如 JSON 的 key 没加双引号、model 名字写错),401 说明 API Key 没带上或已失效,404 说明 url 写错了。
小结(复习自测)
| 题目 | 答案 |
|---|---|
| 请求格式 | 请求行(请求方式、资源路径)、请求头(key |
| 响应格式 | 响应行(状态码)、响应头(key |
| HTTP 的特点 | 基于文本的协议、基于请求响应模型、无状态 |
相关
练习题
一、回忆填空(写完再展开对答案)
- HTTP 全称 ____,中文是 ____
- HTTP 三大特点:基于 ____ 的协议、基于 ____ 模型、____
- 请求格式三部分:请求行(、资源路径、协议)、请求头( 格式)、请求体
- 响应格式三部分:响应行(协议、)、响应头、
- GET 的请求参数在 ____ 里;POST 的参数在 ____ 里
- 状态码:200 = ____;400 = ____;404 = ____;500 = ____
- HTTPS 的默认端口是 ____
填空答案(做完再点开)
- Hyper Text Transfer Protocol / 超文本传输协议 2. 文本、请求-响应、无状态 3. 请求方式、key: value 4. 状态码、响应体 5. 请求行、请求体 6. 请求成功 / 请求参数错误 / 请求资源不存在 / 服务器发生不可预期的错误 7. 443
二、概念自测
-
2-1 “无状态”是什么意思?它和 AI 的”会话记忆”有什么关系?
参考答案(做完再点开)服务端不会记住与客户端的历史交互,每次请求-响应都是独立的。AI 大模型也一样没有记忆,所以”会话记忆”只能由客户端把历史消息一起发过去(会话历史滚雪球)。
-
2-2 对着笔记里的真实请求报文图,指出请求行、请求头、请求体分别在哪
参考答案(做完再点开)第一行
POST /api/courses HTTP/1.1是请求行;中间一串 key: value 是请求头;最后一行是请求体(这里是 JSON 参数)。 -
2-3 调用大模型接口返回 401,最可能是什么原因?
参考答案(做完再点开)请求头里的
Authorization:要么没带(格式应为Bearer <API Key>,注意 Bearer 和空格),要么 API Key 已失效/写错。
评论区
如果你喜欢,那么欢迎来到我的世界!
了解更多













