HTTP 204 No Content含义
HTTP 204 No Content 是一个成功状态码,表示服务器已成功处理请求,但不需要返回任何实体内容。
它的核心语义是:“操作成功,但页面/视图无需刷新或跳转,你继续待在当前页面就行。”
1. 关键规则(必须遵守)
- 响应体必须为空:不允许包含任何数据(哪怕是一个空格或
{})。浏览器或客户端接收到响应体时会直接忽略或报错。 - 允许携带头部:可以返回
Cache-Control、ETag或Location等元数据头部,用以指导客户端后续行为。
2. 典型使用场景
- DELETE 请求:删除资源成功,不需要返回被删除的数据。
- POST/PUT 更新:执行了后台操作(如点赞、收藏、发送指令),但前端不需要获取新数据来更新界面。
- AJAX 轮询:用于“长轮询”或检查更新,当没有新数据时返回 204 以节省带宽,同时保持连接活跃。
- 保存编辑(不刷新页面):点击“保存配置”后,后端保存成功但页面内容不变,返回 204 可防止浏览器跳转或重载。
3. 与易混淆状态码的区别
| 状态码 | 区别核心 |
|---|---|
| 200 OK | 成功,必须返回响应体(哪怕只是 {} 或 "success")。 |
| 204 No Content | 成功,禁止返回响应体(Body 为空)。 |
| 304 Not Modified | 重定向类(缓存),服务器告诉客户端“资源没变,用你本地的缓存”,禁止返回 Body。 |
| 202 Accepted | 已接受请求,但尚未处理完成(异步任务),常用于排队场景。 |