DELETE方法请求源服务器删除目标资源与其当前功能之间的关联。这个方法类似于UNIX上的rm
命令:它表示对源服务器上URI映射的删除操作而不是期望先前关联的信息被删除。
如果目标资源有一个或多个当前表示,他们可能被也可能没有被服务器销毁,相关联的存储可能被也可能没有被回收,这完全取决于资源的属性和源服务器对它的实现(这超出了本规范的范畴)。同样,资源的其他实现方面可能也需要被停用或存档以作为DELETE的一个结果,如数据库或网关链接。通常假定源服务器将只会允许DELETE执行在那些对删除有一个用于完成删除的规定制度的资源上。
相对的,几乎没有资源允许DELETE方法——它的主要用途是用于远程创作环境,用户对其效果有一些指导。例如,先前被PUT请求创建或者通过POST请求的201(创建)响应后的Location头字段标识的资源可能允许一个对应的DELETE请求来撤销这些行为。类似的,实现了创作功能的客户端代理实现,如校订控制客户端使用HTTP进行远程操作,可能基于一个服务器的URI空间已经被设计为对应一个版本仓库的设而想使用DELETE。
如果DELETE方法被成功的应用,动作可能成功但还没有确认时,源服务器应该发送202(已接受)状态码;动作已经被确认并且没有进一步的信息被提供,源服务器应该发送204(无内容)状态码;或动作已经被确认并且响应消息包含一个描述状态的表示,源服务器应该响应200(成功)。
DELETE请求消息中的负载体没有定义语义;在DELETE请求中发送负载体可能造成一些已存在的实现拒绝请求。
DELETE方法的响应不能缓存。如果一个DELETE请求通过一个缓存,其已经缓存了一个或多个有效请求URI的响应,那些缓存响应将成为无效(RFC7234,4.4节)。