我认为412(前提条件失败),但可能会有更好的标准?


当前回答

对于那些感兴趣的人,Spring MVC(3。至少X)在这种情况下返回400,这对我来说似乎是错误的。

我测试了几个谷歌url (accounts.google.com),并删除了所需的参数,在这种情况下,它们通常返回404。

我会复制谷歌。

其他回答

我通常去422(不可处理的实体),如果所需的参数中的某些东西不匹配API端点所需的(如太短的密码),但对于缺少的参数,我会去406(不可接受)。

有人认为,应该使用404 Not Found,因为无法找到指定的资源。

你可以发送一个400坏请求代码。它是一种更通用的4xx状态码,因此您可以使用它来表示您的意图:客户端正在发送一个请求,该请求缺少应用程序正确处理它所需的信息/参数。

我经常使用403 Forbidden错误。理由是请求被理解了,但我不会按照要求去做(因为事情是错误的)。响应实体解释了错误所在,因此如果响应是HTML页面,错误消息就会出现在页面中。如果是JSON或XML响应,错误信息就在里面。

从rfc2616:

10.4.4禁止403 服务器理解请求,但拒绝执行。 授权没有帮助,请求不应该重复。 如果请求方法不是HEAD,而服务器希望 公开为什么要求没有得到满足,它应该描述 实体拒绝的原因。如果服务器不希望这样做 使此信息对客户机可用,即状态代码404 (Not Found)可以代替。

只要去浏览器设置>护盾>自动重定向AMP页面 禁用它,再试一次…