错误数据的HTTP状态代码

错误数据的HTTP状态代码,http,http-status-codes,Http,Http Status Codes,当客户端发布错误数据时,我应该返回什么HTTP状态代码(例如,当需要整数时返回字符串) 我一直在使用400个错误请求,但当我阅读HTTP文档时,它似乎更适用于HTTP协议错误 我想使用一个状态代码,这样Flash和AJAX客户端就可以区分成功、坏数据和服务器错误,而无需解析响应。这正是400的用途。是的,它用于错误的HTTP协议使用,但它并不是专门用于此目的。当客户端点击提交按钮时,我更倾向于将错误数据重新捕获到浏览器中 如果不是,那么我会返回400,因为标准上说: 由于语法错误,服务器无法理解

当客户端发布错误数据时,我应该返回什么HTTP状态代码(例如,当需要整数时返回字符串)

我一直在使用400个错误请求,但当我阅读HTTP文档时,它似乎更适用于HTTP协议错误


我想使用一个状态代码,这样Flash和AJAX客户端就可以区分成功、坏数据和服务器错误,而无需解析响应。

这正是400的用途。是的,它用于错误的HTTP协议使用,但它并不是专门用于此目的。

当客户端点击提交按钮时,我更倾向于将错误数据重新捕获到浏览器中

如果不是,那么我会返回400,因为标准上说:

由于语法错误,服务器无法理解该请求。未经修改,客户端不应重复请求

如果语法错误,请使用“400错误请求”

由于语法错误,服务器无法理解该请求。未经修改,客户端不应重复请求

如果数据不正确(语法正确),请使用“422不可处理实体”

422(不可处理实体)状态代码意味着服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法正确(因此400(坏请求)状态代码不合适),但无法处理包含的指令。例如,如果XML请求体包含格式正确(即语法正确)但语义错误的XML指令,则可能会出现这种错误情况


另请参见答案,400和422代码都正确。

根据OP的问题,如果客户机按照预期发出带有
整数的HTTP请求,该怎么办。但是,假设该整数表示用户的
id
。如果服务器找不到该用户,那么是否也应该返回
400
?在404是最好的选择,在这种情况下@kevinmeredithy您可能应该同时执行这两项操作。无法保证浏览器正在使用您的API。:)永远不要相信UI会发出正确的请求。您一定要返回400。可能是