HTTP 204 No Content含义

HTTP 204 No Content 是一个成功状态码,表示服务器已成功处理请求,但不需要返回任何实体内容

它的核心语义是:“操作成功,但页面/视图无需刷新或跳转,你继续待在当前页面就行。”


1. 关键规则(必须遵守)

  • 响应体必须为空:不允许包含任何数据(哪怕是一个空格或{})。浏览器或客户端接收到响应体时会直接忽略或报错。
  • 允许携带头部:可以返回 Cache-ControlETagLocation 等元数据头部,用以指导客户端后续行为。

2. 典型使用场景

  • DELETE 请求:删除资源成功,不需要返回被删除的数据。
  • POST/PUT 更新:执行了后台操作(如点赞、收藏、发送指令),但前端不需要获取新数据来更新界面。
  • AJAX 轮询:用于“长轮询”或检查更新,当没有新数据时返回 204 以节省带宽,同时保持连接活跃。
  • 保存编辑(不刷新页面):点击“保存配置”后,后端保存成功但页面内容不变,返回 204 可防止浏览器跳转或重载。

3. 与易混淆状态码的区别

状态码 区别核心
200 OK 成功,必须返回响应体(哪怕只是 {}"success")。
204 No Content 成功,禁止返回响应体(Body 为空)。
304 Not Modified 重定向类(缓存),服务器告诉客户端“资源没变,用你本地的缓存”,禁止返回 Body。
202 Accepted 已接受请求,但尚未处理完成(异步任务),常用于排队场景。