Percy

是否允许实体正文进行HTTP DELETE请求?

java

发出HTTP DELETE请求时,请求URI应该完全标识要删除的资源。但是,是否可以在请求的实体中添加额外的元数据?


阅读 318

收藏
2020-12-04

共1个答案

一尘不染

612

该规范没有明确禁止或阻止它,因此我倾向于说它是允许的。

微软认为它以同样的方式(我可以听到观众低声),他们MSDN文章关于国有ADO.NET数据服务框架的删除方法:

如果DELETE请求包含实体主体,则将忽略该主体[…]

另外,这是RFC2616(HTTP 1.1)关于请求必须说的内容:

仅当消息主体存在时,实体主体才存在(第7.2节)
通过包含或标头来表示消息正文的存在(第4.3节)Content-LengthTransfer-Encoding
一个消息体必须不被包括在所述请求的方法的规范不允许发送实体主体(第4.3节)
一个实体主体在TRACE明确禁止仅请求,所有其他请求类型不受限制(第9节和9.8特异性)
对于响应,已定义:

是否包含消息正文取决于请求方法和响应状态(第4.3节)
明确禁止在响应HEAD请求时使用消息正文(特别是第9和9.4节)
在1xx(信息性),204(无内容)和304(未修改)响应中明确禁止了消息正文(第4.3节)
所有其他响应都包括一个消息正文,尽管它的长度可能为零(第4.3节)

2020-12-04