什么是最佳HTTP响应代码不报告200(一切正常)但输入错误?
比如,你向服务器提交一些数据,它会回应你的数据是错误的
使用500看起来更像服务器问题
使用200警告/错误响应文本是坏的(允许缓存,一切都不好)
使用204和返回任何东西,可能是好的(但很好支持?)如果请求的路径(脚本)可用,则
使用404错误在适当的地方
我有几个设计用AJAX调用的页面 - 如果它们无法显示,我会让它们返回异常状态代码,我的javascript会相应地显示错误框.
例如,如果用户未经过身份验证或其会话超时并且他们尝试调用其中一个AJAX页面,则会返回401 Unathorized.
500 Internal Server Error如果服务器端发生了奇怪的事情,我也有一些回报.
如果在没有必要参数的情况下调用其中一个页面,我应该返回什么状态代码?(因此不能返回任何内容).
我查看了有关HTTP状态代码的维基百科文章,但我能找到的最接近的代码是我正在寻找的代码:
422
不可处理的实体请求格式正确,但由于语义错误而无法遵循.
编辑:上面的代码是特定于WebDAV的,因此在这种情况下不太合适
谁能想到适当的代码才能返回?
假设我有一个REST POST终点:www.foo.com/id/Xwhere X代表一个数字.
我的服务器端伪代码如下所示:
performIdLookup(int id) {
if ( idExists(id) ) {
return toJson(lookup(id)) // returns 200/OK Status Code with object as JSON
}
else {
return HTTP_???_error
}
}
Run Code Online (Sandbox Code Playgroud)
根据这个问题,400由于用户提交了有效请求,但是发送错误似乎并不正确,但是服务器无法找到它.
什么是正确的HTTP响应,为什么?