本文更新于 2026-04-09
HTTP
HTTP 是互联网上应用最为广泛的一种网络协议。它定义了浏览器(客户端)与服务器之间交换数据的格式和规则
HTTP 的基本特性
- 应用层协议:运行在 TCP/IP 协议栈之上(默认端口 80,HTTPS 为 443)。
- 请求-响应模型:必须由客户端发起请求,服务器给出响应。
- 无状态 (Stateless):协议本身不保留之前的事务记忆。
- 对策:在开发中通过 Cookie/Session 或 JWT (Token) 来维持登录状态。
- 灵活:允许传输任意类型的数据对象,通过
Content-Type加以标记。

HTTP 请求报文结构
一个标准的 HTTP 请求由四部分组成:
请求行 (Request Line):
Method+URL+Version(如GET /index.html HTTP/1.1)请求头 (Request Headers):键值对格式,描述客户端环境和偏好。
Host: 目标主机。User-Agent: 浏览器标识。Accept: 客户端可接受的内容类型。
空行:必须存在,用于分隔头部和正文。
请求体 (Request Body):仅
POST/PUT等方法使用,存放要提交的数据(如 JSON)。
HTTP 响应报文与状态码
响应报文同样由 状态行、响应头、空行、响应体 组成。
核心状态码分类:
- 2xx (成功):
200 OK(请求成功)。 - 3xx (重定向):
301(永久重定向)、302(临时重定向)。 - 4xx (客户端错误):
400 Bad Request: 请求语法错误。403 Forbidden: 服务器拒绝执行。404 Not Found: 资源不存在。405 Method Not Allowed: 方法不支持(如用 GET 访问 POST 接口)。
- 5xx (服务器错误):
500 Internal Server Error: 后端代码抛出未处理的异常。502 Bad Gateway: 网关从后端收到了非法响应(如 Nginx 找不到 Java 服务)。504 Gateway Timeout: 后端处理超时。
长链接与短链接
| HTTP | 应用层协议 |
|---|---|
| TCP | 传输层协议 |
| ip | 网络层协议 |
| 特性 | 短连接 (Short Connection) | 长连接 (Keep-Alive) |
|---|---|---|
| 底层表现 | 一次请求/响应消耗一个 TCP 连接 | 多次请求/响应复用一个 TCP 连接 |
| HTTP 版本 | HTTP/1.0 默认 | HTTP/1.1 默认 |
| HTTP Header | Connection: close | Connection: keep-alive |
| 握手开销 | 高(每次请求都要三次握手) | 低(仅首次建立需要) |
| 服务器压力 | CPU 压力较大(频繁建立/销毁连接) | 内存压力较大(需维持空闲连接的 socket) |
| 适用场景 | 偶尔交互的单次请求、请求频率极低的服务 | Web 页面浏览、前后端高频 API 交互、图片服务器 |
豫公网安备41019702004633号