正确的HTTP状态代码到错误的input
什么是最佳的HTTP响应代码,当不报告200(一切正常),但input错误?
就像,你提交一些数据到服务器,它会回应你的数据是错误的
使用500
看起来更像服务器问题
使用200
与警告/错误响应文本是不好的(允许caching,一切都不好)
使用204
并没有任何返回,也许是好的(但是很好的支持?)
如果请求的path(脚本)可用并且处于适当的位置,则使用404
是错误的
以4(4xx)开始的代码是针对客户端错误的。 也许400(坏请求)可能适合这种情况? 定义在http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html说:;
“由于格式错误,服务器无法理解请求,客户端不应该不加修改地重复请求。”
我们在制作API的时候遇到了同样的问题。 我们正在寻找一个相当于InvalidArgumentException
的HTTP状态码。 在阅读下面的源文章之后,我们结束了使用422 Unprocessable Entity
,其中指出:
422(不可处理的实体)状态码意味着服务器理解请求实体的内容types(因此415(不支持的媒体types)状态码是不合适的),并且请求实体的语法是正确的(因此400(错误的请求)状态码不合适),但无法处理包含的说明。 例如,如果XML请求主体包含格式正确(即,语法正确),但语义错误的XML指令,则可能会出现此错误情况。
来源: https : //www.bennadel.com/blog/2434-http-status-codes-for-invalid-data-400-vs-422.htm
除了RFC规范,你也可以看到这个在行动。 查看twitter和facebook的回复。
https://dev.twitter.com/docs/error-codes-responses
http://www.fb-developers.info/tech/fb_dev/faq/general/gen_10.html
417表示HTTP_EXPECTATION_FAILED
404 – 未find – 可用于请求的URI无效或请求的资源(如用户)不存在。