常见 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 时,应根据上述原则选择合适的状态码,以提高接口的一致性和可理解性

相关推荐
blasit2 天前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
YuMiao3 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
不可能的是4 天前
前端 SSE 流式请求三种实现方案全解析
前端·http
Jony_5 天前
高可用移动网络连接
网络协议
chilix6 天前
Linux 跨网段路由转发配置
网络协议
郑州光合科技余经理7 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1237 天前
matlab画图工具
开发语言·matlab
dustcell.7 天前
haproxy七层代理
java·开发语言·前端
norlan_jame7 天前
C-PHY与D-PHY差异
c语言·开发语言
多恩Stone7 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc