是否允许HTTP-DELETE请求的响应体?

scr*_*rrr 76 rest http http-delete

我假设响应代码200总是允许响应主体,但我找不到任何明确提及DELETE请求的响应主体.

fyr*_*fyr 129

它在RFC中明确提到

简短的回答是:

应该包括一个响应体与描述删除项/资源如果返回实体200.

202类似于异步请求/响应返回状态.

204明确表示您不包含响应正文

  • +1但是规范说如果响应主体包含一个"描述状态"的实体而不是删除的实体,则可以返回200 ok. (8认同)
  • Upvote用于引用HTTP规范.另请注意,他们正在更新HTTP规范并澄清许多问题http://tools.ietf.org/wg/httpbis/ (2认同)

Bri*_*ott 15

是的,您应该根据W3C规范回复200响应代码:

9.7删除

DELETE方法请求源服务器删除Request-URI标识的资源.可以通过源服务器上的人为干预(或其他方式)覆盖此方法.即使从源服务器返回的状态代码表明操作已成功完成,也无法保证客户端已执行该操作.但是,服务器不应该指示成功,除非在给出响应时,它打算删除资源或将其移动到不可访问的位置.

如果响应包括描述状态的实体,则成功响应应为200(OK),如果操作尚未执行,则应为202(已接受);如果操作已颁布但响应不包括,则应为204(无内容)一个实体.

如果请求通过缓存并且Request-URI标识了一个或多个当前缓存的实体,那么这些条目应该被视为陈旧.对此方法的响应不可缓存.

  • 这不是"W3C规范". (10认同)
  • 你误读了这门语言.代码按升序列出,顺序并不意味着首选响应.如本文所述,200,202或204响应中的每一个都是可接受的.SHOULD只表示代码是用通常的约定实现的(例如,200包括一个正文,而204则不包含). (2认同)