根据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