首页/网络/协议速查/DELETE 删除资源
HTTP 方法与状态码91 条

DELETE 删除资源

请求删除目标资源,幂等:重复删除同一资源不应产生不同副作用(第二次可返回 404 或 204)。

协议速查网络更新于 2026-10-13

DELETE 是什么

DELETE 请求删除目标资源,是幂等方法:重复删除同一资源不会产生额外副作用,第二次可以返回无内容,也可以返回未找到,两者都符合规范。它不安全,因为它改变了资源状态。RFC 9110 §9.3.5 对它的定义很克制:只说明删除意图,是否为物理删除、要不要保留可恢复副本,完全由服务端策略决定,因此生产环境里常见的实现是软删除加延迟清理。

基本信息

名称DELETE(RFC 9110 §9.3.5)
作用删除目标资源
特性幂等但不安全;重复删除不应产生额外副作用
成功码无内容、成功或已受理,取决于实现
请求体一般不带,个别实现用它传删除条件,属于非标准用法

典型使用场景

  • 删除单条记录:按资源标识移除,通常配合软删除
  • 批量清理:按条件删除过期数据,建议走异步任务而不是同步接口
  • 注销与解绑:逻辑删除用户资源并保留审计记录
  • 回收站操作:允许恢复的删除,实际上只是改变状态位
  • 资源下线:接口层拒绝访问同时保留数据以备追溯

删除并确认结果

删除并确认结果
curl -i -X DELETE https://api.example.com/users/101   # 看状态码与是否带响应体
curl -si -X DELETE https://api.example.com/users/101   # 再次执行,验证幂等:应返回未找到或无内容
curl -s -o /dev/null -w '%{http_code}\n' -X DELETE https://api.example.com/users/101   # 脚本里只取状态码

删除的响应码怎么选

场景推荐码说明
立即删除且无内容可返回无内容码最常用,不带响应体
删除但需要回传结果成功码适合需要确认删除对象的场景
转为异步清理已受理码给出进度查询地址
目标本来就不存在未找到或无内容幂等实现两种都可接受

安全与审计要点

  • 删除权限要比读权限更严格,并单独记录操作日志
  • 优先采用软删除加延迟清理,给误操作留出恢复窗口
  • 删除令牌与管理密钥走认证头,不要放进地址参数
  • 批量删除要有速率限制与二次确认,避免一次误操作清空数据
如果删除接口是读取方法可达的链接,会被爬虫预取或浏览器预加载触发,造成静默丢数据。删除必须使用带副作用的请求方法,并配合权限校验与来源校验。
物理删除与逻辑删除的取舍在于数据价值:涉及资金、审计或合规的数据通常只做状态变更并保留一段时间,真正的物理清理交给定期任务执行,这样既能满足合规要求,也能在误删时快速恢复。

易错点

  • 把删除做成读取方法可达的地址,被爬虫或浏览器预加载误触发
  • 在地址参数里携带删除令牌或管理密钥,泄漏后可以批量清数据
  • 真删除且没有任何审计与恢复手段,一次误操作造成不可逆的数据丢失
  • 重复删除返回未找到被客户端当成失败并反复重试,掩盖了真实的删除结果

数据来源与参考

  • RFC 9110 §9.3.5 DELETE

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌