2013-02-05 90 views

回答

5

是的,它可以返回204.或400.或400.对于方法返回的状态代码没有一般限制。

另请注意,现在是时候停止查看RFC 2616.请参阅http://trac.tools.ietf.org/wg/httpbis/trac/wiki

+1

推测第二个“或400”应该是“或404”(或其他非400)。 – 76484

+0

您对这里的其他答案有什么看法?虽然在实践中浏览器似乎是“OK”,204的FWIW ......事实上的标准,为赢得! :) – rogerdpack

7

2616说:

200响应应该......

...

如果不包含响应体,响应必须包括一个 的Content-Length字段字段值为“0”。

这确实使得它不清楚200是适用于整段还是仅适用于第一句。如果你想保证安全,你必须让MUST优先(并且不会花费太多)。

RFC 7231,其淘汰了RFC 2616,改变了措辞

甲服务器产生到OPTIONS一个成功响应应该...

...

服务器必须生成一个如果在响应中不发送有效载荷主体,则Content-Length字段的值为“0”。

这使得最后一句话在一般意义上适用于2xx状态,并且必须为准。

所以,内容长度务必发送。

RFC 2616表示,像这样::但内容长度不能用204被发送

消息正文中的请求的存在由包含一个内容长度的信号,或者Transfer-Encoding标题字段...

... 所有1xx(信息性),204(无内容)和304(未修改)响应都不得包含消息体。

和RFC 7230阐明了这一点,以及:

与1XX(信息)或204(无内容)的状态码的任何响应的服务器不能发送一个Content-Length头字段。

无论如何,这就是我的理解。

相关问题