HTTP 403或406是否违反邮政要求?

简单的问题:

我有一个POST端点,它需要一些文本输入。 文本输入不得超过x个字符。 如果是这样,我会回复一条错误消息。

但是哪个HTTP状态码是正确的?

0.4.4 403禁止

服务器了解请求, 但拒绝履行它。 授权不起作用,请求不应重复。 [..]

10.4.7 406不可接受

根据请求中发送的接受头,由请求标识的资源只能够生成具有不可接受的内容特征的响应实体。

10.4.18 417期望失败

这个服务器无法满足期望请求头字段[...]中给出的期望 [..]

来源:w3.org


我想这是存在的问题。 很快,正确的HTTP代码是400 +可选的描述

您可以在此处签出更详细的答案:未通过验证的REST HTTP状态代码或无效重复


在我看来没有

您不应该使用HTTP状态代码作为某种验证/编程来获得特定结果。 4xx代码定义了请求和资源(资源未找到,请求未授权,禁止资源等)的问题,它们不应该用于确定请求体中的某些文本框值是否正确。

就我个人而言,我更喜欢返回HTTP 200状态码,只是返回一些消息(或者有时HTTP 500,因为验证会引发错误)。 无论如何,对于大多数用户而言,您应该在客户端使用某种JS验证来捕获错误,而不是从API中捕获错误。

如果你真的想要使用HTTP状态代码来处理某种应用逻辑,我会建议使用HTTP 400因为它定义了下面的约束: The client SHOULD NOT repeat the request without modifications.

链接地址: http://www.djcxy.com/p/45431.html

上一篇: HTTP 403 or 406 for post requirements violation?

下一篇: 400 vs 422 response to POST that references an unknown entity