HTTP OPTIONS请求是否可以返回204或是否总是返回200?
根据http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.2,有关HTTP OPTIONS请求中提到的唯一响应是200.但是,似乎存在诸如content-length是0,204会更合适。 HTTP OPTIONS请求是否适合返回204?
是的,它可以返回204.或者400.或者400.对于方法返回的状态代码没有一般的限制。
另请注意,现在是时候停止查看RFC 2616.请参阅http://trac.tools.ietf.org/wg/httpbis/trac/wiki。
RFC 2616说:
200回应应该...
...
如果没有包含响应主体,响应必须包含一个字段值为“0”的内容长度字段。
这实际上并不清楚200是适用于整段还是只适用于第一句。 如果你想保证安全,你必须让MUST优先(并且不会花费太多)。
RFC 7231废除了RFC 2616,将措辞改为
生成OPTIONS的成功响应的服务器应该...
...
如果在响应中不发送有效负载体,服务器必须生成一个值为“0”的Content-Length字段。
这使得最后一句在一般意义上适用于2xx状态,并且必须胜诉。
所以,内容长度必须发送。 但是Content-Length不能用204:
RFC 2616表示它是这样的:
通过包含Content-Length或Transfer-Encoding标头字段来标示请求中消息体的存在......
...所有1xx(信息),204(无内容)和304(未修改)的回复不得包含消息主体。
RFC 7230也阐明了这一点:
服务器不得在任何状态码为1xx(信息性)或204(无内容)的响应中发送Content-Length标题字段。
无论如何,这就是我的理解。
链接地址: http://www.djcxy.com/p/45417.html上一篇: Can an HTTP OPTIONS request return a 204 or should it always return 200?
下一篇: How to work around POST being changed to GET on 302 redirect?