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 方法典型成功状态码说明
GET200 OK返回资源内容
POST201 Created创建新资源
PUT204 No Content更新资源,无需返回内容
DELETE204 No Content删除资源,无需返回内容
PATCH200 OK部分更新,返回更新后的内容

总结

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/90927.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90927.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/90927.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读】Think Only When You Need with Large Hybrid-Reasoning Models

Think Only When You Need with Large Hybrid-Reasoning Models2 Large Hybrid-Reasoning Models2.1 Problem Formulation关键定义与目标核心挑战与解决方案2.2 第一阶段:混合微调(Hybrid Fine-Tuning, HFT)核心设计数据构建数据集统计优化目…

洛谷 P13014:[GESP202506 五级] 最大公因数

【题目来源】 https://www.luogu.com.cn/problem/P13014 【题目描述】 对于两个正整数 ,他们的最大公因数记为 。对于 个正整数 ,他们的最大公因数为: 给定 个正整数 以及 组询问。对于第 组询问,请求出 的最大公因数&…

构建应用内智能:衡石嵌入式BI如何打造“指标中台”驱动的场景化分析

在当今数据驱动的业务环境中,将智能分析能力深度嵌入业务应用(如CRM、ERP、SCM、自研SaaS)已成为刚需。然而,实现高性能、一致性、可治理的嵌入式分析面临巨大技术挑战。衡石科技通过其核心的指标中台(Metric Platform…

带货视频评论洞察 Baseline 学习笔记 (Datawhale Al夏令营)

一、 项目认识背景:电商直播/短视频已积累大量「视频 评论」数据,蕴含了消费者的真实反馈。目标:通过「商品识别 → 情感分析 → 评论聚类」三步,辅助品牌洞察、网红投放评估。二、 Baseline 代码流程1. 读取和预处理video_data …

uniapp中使用uView-plus踩坑记录

​​​1.使用插件市场安装点击到插件市场 零云uview-plus3.0重磅发布,全面的Vue3鸿蒙移动组件库。 - DCloud 插件市场 点击选择项目直接导入就可以,下载完成后会在uni_modules中,这个.gitignore中不可忽略 ​ 使用在main.js里引入 import…

openGauss数据库管理实战指南——基本常用操作总结

查看所有数据库 查看所有表 \d 查看函数定义 查看所有用户 select usename from pg_user; 1.数据库创建管理 CREATE DATABASE test; 2.数据库用户创建管理 CREATE USER tom PASSWORD Root123456.; 3.表的创建及管理 3.1.创建表 CREATE TABLE test(ID INTEGER PRIMARY …

智慧公安信息化建设解决方案PPT(63页)

智慧公安的定义与职能 智慧公安是利用现代信息技术提升公安工作效率与服务质量的新模式,涵盖刑事侦查、治安管理、交通管理等多方面职能,致力于保障社会安全与秩序。 智慧公安信息化建设的重要性 信息化建设是智慧公安发展的核心,通过数据…

k8s存储入门

目录 一、 Volume 的概念 二、 Volume 的类型 三、 通过 emptyDir 共享数据 1. EmptyDir 特性 2. EmptyDir 共享数据 四:使用 HostPath 挂载宿主机文件 1. HostPath 特性 2. 挂载宿主机时区文件 五、 挂载 NFS 至容器 1. 前置准备(所有 K8s 节…

基于 Flutter 的开源文本 TTS 朗读器(支持 Windows/macOS/Android)

界面特性 基于 Flutter 的文本 TTS 朗读器支持 Windows、macOS、AndroidTTS 源:OpenAI TTS、Microsoft TTS支持设置代理支持设置应用主题支持倍速支持书签支持点击指定地方朗读支持 txt、epub、贴粘文本支持从上次地方开始朗读 源代码https://github.com/xchenhao/t…

深入理解大语言模型:从核心技术到极简实现

零基础的读者建议先看《零基础理解大语言模型:从生活例子到代码实现》,本教程的完整代码可以在GitHub上找到,如果你有任何问题或建议,欢迎交流讨论。 引言 自ChatGPT横空出世以来,大语言模型(Large Langua…

7月13日日记

看来每天写一篇日记对我来说还是一个不小的挑战。主要是和惰性做抗争吧。但是这个东西说实话也没有什么难度,也并不占用时间,一篇日记大概十几分钟就可以写完。可能更多的是健忘。忘了每天有一个这样的小任务。忘了前几天日记写没写了,三下乡…

《Stata面板数据分析:数据检验、回归模型与诊断技术 - 以NLSW工资研究(公开数据)为例》

本教程旨在全面介绍使用 Stata 进行面板数据分析的方法和技巧。我们将以美国国家纵向调查(NLSW)的数据为例,系统地探讨从基础 OLS 回归到高级固定效应模型的分析过程。 NLSW 数据集是公开的,可以免费获取,这为读者提供了实践和复现的机会。 通过这个教程,您将掌握使用 …

【VSCode+LaTeX】科研写作环境搭建

文章目录0 引言为什么选择LaTeXVSCode?为什么不选择Overleaf?1 TeXLive安装1.1 下载安装包1.2 运行安装程序1.3 通过镜像安装2 VSCode安装与配置2.1 下载VSCode安装包2.2 安装VSCode2.3 安装中文语言包2.4 配置LaTeX核心扩展2.5 加载TeX模版文件2.6 编译…

Surfer软件入门与等值线绘制实操教程

本文还有配套的精品资源,点击获取 简介:本教程将指导初学者如何使用Surfer软件进行地质绘图,重点在于等值线的绘制技巧和提升图形质量。内容涵盖Surfer界面介绍、数据导入、等值线绘制方法、样式设置、地图增强技术以及输出保存方法&#…

攻防世界——Web题 very_easy_sql

目录 payload1 payload2 payload3 看到了题目是sql就猜测是sql注入和万能密码了,但怎么试貌似都没有反应,看源代码发现了use.php 访问use.php页面 可以猜测这里是SSRF,可以访问到我们本不能访问的界面,比如:服务器…

基于 SpringBoot 的 REST API 与 RPC 调用的统一封装

一、为何需要统一封装? 在讨论统一封装之前,我们先看看 REST 和 RPC 各自的适用场景。 REST API 基于 HTTP 协议,采用 JSON 作为数据交换格式,可读性好且跨语言,非常适合对外提供服务。 RPC(如 Dubbo、gRPC…

【SpringBoot】 整合MyBatis+Postgresql

MyBatis 是一个轻量级的持久化框架,用于简化数据库访问和操作。它通过将 SQL 语句与 Java 代码分离,允许开发者使用 XML 或注解来配置 SQL 语句,并将结果映射为 Java 对象。MyBatis 提供了灵活的 SQL 控制,适合需要精细控制 SQL 的…

无缝衔接直播流体验

文章目录前言🧠 1. 为什么能“无缝衔接”?🧰 2. Flutter 实现方案✅ 总体策略🎯 核心技术点✅ a. 使用全局播放器管理器(单例模式)✅ b. 广场页中的直播卡片使用播放器✅ c. 详情页复用控制器✅ d. 页面切换…

[论文阅读] 软件工程 | 首个德语软件工程情感分析黄金标准数据集:构建与价值解析

首个德语软件工程情感分析黄金标准数据集:构建与价值解析 论文标题:A German Gold-Standard Dataset for Sentiment Analysis in Software EngineeringarXiv:2507.07325 A German Gold-Standard Dataset for Sentiment Analysis in Software Engineering…

PyTorch编程实践:一文就入门的上手开发!

引言 PyTorch作为当今深度学习领域最流行的框架之一,以其动态计算图、直观的Python接口和强大的GPU加速能力,赢得了众多研究人员和工程师的青睐。本文将深入探讨PyTorch的编程实践,从基础概念到高级应用,帮助读者全面掌握这一强大…