2013-02-05 93 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頭字段。

無論如何,這就是我的理解。

相關問題