205 是什么
205 Reset Content 要求客户端在收到响应后重置发起请求的文档视图,例如清空表单输入、复位画布状态、取消当前选择(RFC 9110 §15.3.6)。它和 204 的唯一区别是:204 表示「成功且不要改变视图」,205 表示「成功且请把视图复位」。响应必须不带实体内容,也不应携带描述内容的类型头。
基本信息
| 名称 | 205 Reset Content |
|---|---|
| 类别 | 2xx 成功 |
| 规范 | RFC 9110 §15.3.6 |
| 响应体 | 必须为空(常用 Content-Length: 0) |
| 浏览器支持 | 稀少,实际多用 204 加脚本实现 |
| 与 204 差异 | 只多一条「要求客户端重置视图」的语义 |
典型使用场景
- 表单提交后清空输入的流程设计,语义上最贴切的响应码
- 富交互页面:操作完成后复位视图状态(画布、选择器、编辑器)
- 前端框架与协议研究者:厘清 204、205、303 各自的分工
- 排障:解释某些老系统提交后输入不残留的行为
- API 设计评审:确认「无返回体」与「要求重置视图」是两件事
- 自动化测试:断言响应为空体且状态码为 205 而非 200
请求与响应示意
请求与响应示意
POST /form HTTP/1.1
Content-Type: application/x-www-form-urlencoded
name=alice
HTTP/1.1 205 Reset Content # 提交成功,请客户端重置表单视图
Content-Length: 0 # 必须无实体内容
# 浏览器不会自动清空表单,实际仍由页面脚本处理204 与 205 与 303 怎么选
| 状态码 | 语义 | 典型用法 |
|---|---|---|
| 204 | 成功、无实体、不改变视图 | DELETE、PUT 成功后无需返回内容 |
| 205 | 成功、无实体、要求重置视图 | 表单提交后清空输入 |
| 303 | 请改用 GET 访问新地址 | 提交后跳转结果页,防重复提交 |
| 200 | 成功并返回实体 | 需要把处理结果回传给调用方 |
主流浏览器与前端框架普遍不实现 205 的视图重置动作,用它实现「提交后清空表单」并不可靠,客户端仍需脚本兜底。
205 响应必须没有实体,也不应带描述内容的 Content-Type;若需要返回处理结果数据,改用 200 更合适,否则客户端可能因空体解析失败。
在需要防重复提交的场景里,303 配合 GET 的目标地址更符合「提交后跳转」的通行做法,语义也更清晰。