深入理解HTTP请求方法特性、幂等性概念及状态码含义
示例: GET /users/123 HTTP/1.1
示例: POST /users HTTP/1.1
示例: PUT /users/123 HTTP/1.1
示例: DELETE /users/123 HTTP/1.1
示例: HEAD /users/123 HTTP/1.1
幂等(Idempotent):多次执行同一操作,结果与执行一次相同。
| 方法 | 幂等性 | 说明 |
|---|---|---|
| GET | 多次获取同一资源结果相同 | |
| POST | 每次提交都会创建新资源 | |
| PUT | 多次更新结果相同 | |
| DELETE | 多次删除结果相同(资源已不存在) | |
| HEAD | 多次获取元数据结果相同 |
临时响应,表示请求已被接收,继续处理。
| 状态码 | 名称 | 说明 |
|---|---|---|
| 100 | Continue | 请继续发送请求体 |
| 101 | Switching Protocols | 服务器同意切换协议(如HTTP→WebSocket) |
| 102 | Processing | 服务器已收到请求,正在处理 |
请求已成功被服务器接收、理解并接受。
| 状态码 | 名称 | 说明 |
|---|---|---|
| 200 | OK | 请求成功,返回请求的数据 |
| 201 | Created | 资源创建成功 |
| 202 | Accepted | 请求已接受,但未处理完成 |
| 204 | No Content | 请求成功,但无返回内容 |
需要客户端采取进一步操作才能完成请求。
| 状态码 | 名称 | 说明 |
|---|---|---|
| 301 | Moved Permanently | 永久重定向,资源已永久迁移 |
| 302 | Found | 临时重定向,资源临时在其他位置 |
| 304 | Not Modified | 资源未修改,可使用缓存 |
| 307 | Temporary Redirect | 临时重定向,保持原请求方法 |
请求包含语法错误或无法完成。
| 状态码 | 名称 | 说明 |
|---|---|---|
| 400 | Bad Request | 请求语法错误 |
| 401 | Unauthorized | 未授权,需要身份验证 |
| 403 | Forbidden | 服务器理解请求,但拒绝执行 |
| 404 | Not Found | 资源不存在 |
| 405 | Method Not Allowed | 请求方法不被允许 |
| 429 | Too Many Requests | 请求过多,限流 |
服务器在处理请求时发生错误。
| 状态码 | 名称 | 说明 |
|---|---|---|
| 500 | Internal Server Error | 服务器内部错误 |
| 501 | Not Implemented | 服务器不支持请求的功能 |
| 502 | Bad Gateway | 网关错误,上游服务器无效响应 |
| 503 | Service Unavailable | 服务不可用,服务器过载或维护 |
| 504 | Gateway Timeout | 网关超时,上游服务器未及时响应 |
| 方法 | 请求体 | 幂等 | 安全 | 缓存 | 典型用途 |
|---|---|---|---|---|---|
| GET | 查询数据 | ||||
| POST | 创建资源 | ||||
| PUT | 更新资源 | ||||
| DELETE | 删除资源 | ||||
| HEAD | 检查资源 |
掌握HTTP方法的特性和状态码的含义,是构建健壮、安全的Web应用的基础。理解幂等性概念有助于设计更好的API和错误处理机制。