一个OPTION请求应该使用什么HTTP响应码?

9
我注意到Mozilla HTTP 响应代码文档中提到:

PUT、DELETE 和 OPTIONS 这些方法不会返回 200 OK 响应。

但是它并没有明确说明应该使用哪种响应。我最好的猜测是使用204:

204:无内容

此请求没有要发送的内容,但头信息可能很有用。用户代理可以使用新的头信息更新此资源的缓存头信息。

是否有人能够评论一下这是否是正确的代码来响应OPTIONS请求?


有趣的是,Alan Dean的HTTP头状态流程图建议使用200。 - Gumbo
不错的发现.. 现在请继续更新MDN维基。 - Sachin Jain
4个回答

7

我使用204 No Content,因为OPTIONS响应没有任何内容。


5
HTTP 1.1的最新RFC文件明确规定,无论是哪种请求方式,都可以使用“200 OK”作为响应码。详见RFC 7231第6.3.1节。

1

0

那么,在这种情况下,Mozilla 的文档显然是错误的。


1
这本书同意你的观点。DELETE可以返回200 OK - Amelia
Hiroto:我真的不在乎其他来源是否说了同样的话。重要的是规范。 - Julian Reschke
4
这怎么算是回答?看起来更像是一条评论而不是一个回答。你没有提供来源,也没有解释。你只是告诉OP Mozilla是错的,却没有解释原因或提供来源(替代文献、规范、出版物等)。 - Swivel
这是一个事实陈述。你可以通过查看实际的 HTTP 规范(IETF RFC 7230...5)轻松验证它。 - Julian Reschke
@JulianReschke,我只是想说这非常没有建设性和无益。也许可以像Michael Foukarakis那样解释一下?由于这些答案通常因其解释和参考而最有帮助,我发现这个回答相当没有信息量,而且坦率地说,毫无用处。我认为在SO上从未见过比这更糟糕的答案,特别是考虑到它是被接受的回复。 - Swivel
再次强调,这是一个事实陈述,而且据我上次检查,这段文本已经从Mozilla文档中删除。我们能否继续进行下去? - Julian Reschke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接