根據http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.2有關HTTP OPTIONS請求中提到的唯一響應是200.但是,似乎有些情況下,如內容長度爲0,204會更合適。 HTTP OPTIONS請求是否適合返回204?HTTP OPTIONS請求是否可以返回204或是否總是返回200?
5
A
回答
5
是的,它可以返回204.或400.或400.對於方法返回的狀態代碼沒有一般限制。
另請注意,現在是時候停止查看RFC 2616.請參閱http://trac.tools.ietf.org/wg/httpbis/trac/wiki。
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頭字段。
無論如何,這就是我的理解。
相關問題
- 1. 每個成功的HTTP請求是否總是返回狀態碼200?
- 2. 是否可以在非HTTP-200響應中返回HTML標記?
- 3. 檢查HTTP請求是否返回404或頁面未找到
- 4. 是否正確返回200確定發佈請求?
- 5. 檢查URL是否存在 - HTTP請求總是返回一個異常
- 6. OPTIONS方法與Java客戶端返回200/OK總是
- 7. PayPal是否總是返回payer_id?
- 8. My.Computer.Name是否總是返回大寫?
- 9. WebMethod是否總是返回XML?
- 10. 是否隱藏總是返回YES
- 11. 「instanceof Void」是否總是返回false?
- 12. Asp.NET核心:跨服務請求(預檢)返回代碼204而不是200
- 13. nodejs請求 - 總是返回econnresed
- 14. document.getElementsByTagName('head')[0]是否可以返回null?
- 15. HTTP請求是否總是完成?
- 16. AJAX請求總是返回false
- 17. ajax json請求,總是返回錯誤
- 18. self.context [「請求」]。用戶總是返回AnonymousUser
- 19. XmlSerializer.Deserialize是否可以返回null?
- 20. 是否可以在serviceContract中返回System.Messaging.Message?
- 21. 爲什麼WifiInfo.getRssi()總是返回-200?
- 22. CreateFile是否可以返回NULL?
- 23. 可以String.Split()是否返回null? (.net)
- 24. Powershell Receive-Job是否可以返回DataSet?
- 25. AppDomain.CreateInstanceAndUnwrap是否可以返回null?
- 26. C#2.0:MethodBase.GetCurrentMethod()是否可以返回null?
- 27. 是否可以更改msiexec返回碼
- 28. MemberExpression是否可以返回方法
- 29. numberofRowsinSection是否可以返回NSMutableArray的VALUES?
- 30. javax.persistence.Query.getResultList()是否可以返回null?
推測第二個「或400」應該是「或404」(或其他非400)。 – 76484
您對這裏的其他答案有什麼看法?雖然在實踐中瀏覽器似乎是「OK」,204的FWIW ......事實上的標準,爲贏得! :) – rogerdpack