HTTP方法与状态码完整笔记

深入理解HTTP请求方法特性、幂等性概念及状态码含义

HTTP 请求方法 状态码 幂等性

目录导航

一、HTTP请求方法详解

1 GET - 获取资源
  • 用途:请求指定资源
  • 请求体:无body
  • 幂等性:具有幂等性
特点:
  • 参数通过URL传递
  • 可被缓存
  • 可被收藏为书签
  • 有长度限制(受URL长度限制)

示例: GET /users/123 HTTP/1.1

2 POST - 创建或提交资源
  • 用途:创建新资源或提交数据
  • 请求体:有body
  • 幂等性:不具有幂等性
特点:
  • 数据放在请求体中
  • 不会被缓存
  • 不会保留在浏览器历史记录中
  • 对数据长度无限制

示例: POST /users HTTP/1.1

3 PUT - 替换资源
  • 用途:更新或替换指定资源
  • 请求体:有body
  • 幂等性:具有幂等性
特点:
  • 客户端提供完整资源
  • 如果资源不存在则创建
  • 多次执行结果相同

示例: PUT /users/123 HTTP/1.1

4 DELETE - 删除资源
  • 用途:删除指定资源
  • 请求体:通常无body
  • 幂等性:具有幂等性
特点:
  • 多次删除同一资源结果相同
  • 可能返回200(成功)或204(无内容)

示例: DELETE /users/123 HTTP/1.1

5 HEAD - 获取资源元数据
  • 用途:获取资源头部信息,不返回实际内容
  • 请求体:无body
  • 幂等性:具有幂等性
特点:
  • 响应只有headers,没有body
  • 用于检查资源是否存在、获取元数据
  • 比GET更快,节省带宽

示例: HEAD /users/123 HTTP/1.1

二、幂等性概念

1 什么是幂等性?

幂等(Idempotent):多次执行同一操作,结果与执行一次相同。

2 幂等性对比表
方法 幂等性 说明
GET 多次获取同一资源结果相同
POST 每次提交都会创建新资源
PUT 多次更新结果相同
DELETE 多次删除结果相同(资源已不存在)
HEAD 多次获取元数据结果相同
3 实际应用场景
  • 幂等操作:适合重试机制,网络失败可安全重发
  • 非幂等操作:需要谨慎处理,避免重复提交

三、HTTP状态码详解

1 1xx - 信息性状态码

临时响应,表示请求已被接收,继续处理。

状态码 名称 说明
100 Continue 请继续发送请求体
101 Switching Protocols 服务器同意切换协议(如HTTP→WebSocket)
102 Processing 服务器已收到请求,正在处理
2 2xx - 成功状态码

请求已成功被服务器接收、理解并接受。

状态码 名称 说明
200 OK 请求成功,返回请求的数据
201 Created 资源创建成功
202 Accepted 请求已接受,但未处理完成
204 No Content 请求成功,但无返回内容
3 3xx - 重定向状态码

需要客户端采取进一步操作才能完成请求。

状态码 名称 说明
301 Moved Permanently 永久重定向,资源已永久迁移
302 Found 临时重定向,资源临时在其他位置
304 Not Modified 资源未修改,可使用缓存
307 Temporary Redirect 临时重定向,保持原请求方法
4 4xx - 客户端错误状态码

请求包含语法错误或无法完成。

状态码 名称 说明
400 Bad Request 请求语法错误
401 Unauthorized 未授权,需要身份验证
403 Forbidden 服务器理解请求,但拒绝执行
404 Not Found 资源不存在
405 Method Not Allowed 请求方法不被允许
429 Too Many Requests 请求过多,限流
5 5xx - 服务器错误状态码

服务器在处理请求时发生错误。

状态码 名称 说明
500 Internal Server Error 服务器内部错误
501 Not Implemented 服务器不支持请求的功能
502 Bad Gateway 网关错误,上游服务器无效响应
503 Service Unavailable 服务不可用,服务器过载或维护
504 Gateway Timeout 网关超时,上游服务器未及时响应

四、快速参考表

1 方法对比
方法 请求体 幂等 安全 缓存 典型用途
GET 查询数据
POST 创建资源
PUT 更新资源
DELETE 删除资源
HEAD 检查资源
2 状态码速记
  • 1xx:继续处理
  • 2xx:成功
  • 3xx:重定向
  • 4xx:客户端错误
  • 5xx:服务器错误

五、最佳实践建议

1 选择合适的方法
  • 查询用GET,创建用POST,更新用PUT,删除用DELETE
  • 检查资源用HEAD
2 幂等性考虑
  • 网络不稳定时,优先使用幂等方法
  • POST操作需要防重复提交机制
3 状态码使用
  • 成功返回200/201
  • 资源不存在返回404
  • 未授权返回401
  • 服务器错误返回500
4 安全性
  • 敏感数据不要放在URL中(GET)
  • 使用HTTPS加密传输
  • 实施适当的认证和授权机制

六、总结

1 核心要点

掌握HTTP方法的特性和状态码的含义,是构建健壮、安全的Web应用的基础。理解幂等性概念有助于设计更好的API和错误处理机制。