常见 HTTP 方法的成功状态码200,204,202,201

HTTP 协议中,操作成功后的状态码选择取决于操作类型和响应内容,并非所有非 GET/POST 请求都返回 204。以下是常见 HTTP 方法的成功状态码规范:

1. GET

  • 200 OK:默认成功状态码,表示请求成功且返回了资源内容。
  • 206 Partial Content:当请求范围获取资源时(如断点续传)。

2. POST

  • 200 OK:操作后返回数据(如查询结果)。
  • 201 Created:创建了新资源(如创建用户、上传文件)。
  • 202 Accepted:请求已接受但尚未处理(异步操作)。
  • 204 No Content:操作成功但无需返回内容(罕见)。

3. PUT

  • 200 OK:更新资源且返回更新后的内容。
  • 204 No Content:更新资源但无需返回内容(更常见)。
  • 201 Created:如果 PUT 用于创建资源(如幂等创建)。

4. DELETE

  • 204 No Content:默认成功状态码,表示资源已删除,无需返回内容。
  • 200 OK:当需要返回删除的详细信息时(如批量删除返回成功列表)。
  • 202 Accepted:异步删除(请求已接受但尚未执行)。

5. PATCH

  • 200 OK:部分更新资源并返回更新后的内容。
  • 204 No Content:部分更新但无需返回内容。

6. HEAD

  • 200 OK:仅返回响应头,不包含内容。

选择原则

  1. 是否创建资源 :使用 201 Created(如 POST/PUT 创建新资源)。
  2. 是否需要返回内容
    • 需要返回数据 → 200 OK
    • 无需返回内容 → 204 No Content
  3. 异步处理 :使用 202 Accepted(如任务队列处理)。

常见误区

  • DELETE 必须返回 204:不一定。例如,批量删除 API 可能返回成功删除的对象列表,此时用 200 更合适。
  • PUT/PATCH 只能返回 204:若操作后需要返回更新后的资源(如更新用户信息后返回完整用户对象),应使用 200。

示例对照表

HTTP 方法 典型成功状态码 说明
GET 200 OK 返回资源内容
POST 201 Created 创建新资源
PUT 204 No Content 更新资源,无需返回内容
DELETE 204 No Content 删除资源,无需返回内容
PATCH 200 OK 部分更新,返回更新后的内容

总结

  • 204 No Content 适用于操作成功但无需返回内容的场景(如 DELETE、PUT/PATCH 更新后)。
  • 200 OK 适用于需要返回响应内容的场景(如 GET、POST 查询结果)。
  • 201 Created 专用于资源创建操作。

在设计 API 时,应根据上述原则选择合适的状态码,以提高接口的一致性和可理解性

相关推荐
不做菜鸟的网工1 小时前
H3C 单点公网IPsec配置实验
网络协议
moonless02222 天前
FastAPI框架,这一小篇就能搞懂精髓。
http·fastapi
侃侃_天下3 天前
最终的信号类
开发语言·c++·算法
echoarts3 天前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
树码小子3 天前
Java网络编程:(socket API编程:TCP协议的 socket API -- 回显程序的服务器端程序的编写)
java·网络·tcp/ip
Aomnitrix3 天前
知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
开发语言·javascript·分布式
每天回答3个问题3 天前
UE5C++编译遇到MSB3073
开发语言·c++·ue5
伍哥的传说3 天前
Vite Plugin PWA – 零配置构建现代渐进式Web应用
开发语言·前端·javascript·web app·pwa·service worker·workbox
小莞尔3 天前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
我是菜鸟0713号3 天前
Qt 中 OPC UA 通讯实战
开发语言·qt