【发布时间】:2014-07-25 10:23:25
【问题描述】:
这是一个理论问题。 我相信我知道答案,但我收到了相互矛盾的答案,所以我想我会在这里问。
在 W3C 网站上它说:
客户端错误 4xx 4xx 类状态码适用于客户端 好像搞错了。
它也说
服务器错误 5xx 以数字“5”开头的响应状态码表示 服务器知道它有错误或无法做到的 执行请求。
我认为这意味着如果一个请求在语法上是正确的,但在逻辑上是错误的,例如尝试在特定属性上创建一个具有无效值的对象,那么我的 API 应该抛出一个 5xx 错误,因为服务器 DID理解请求,但发现它无效。 另一方面,我被告知它应该是 4xx 错误(特别是 400 错误请求),因为逻辑错误发生在客户端,因为它首先发送了无效值。
那么,我应该报告什么错误代码?
【问题讨论】:
-
我一直认为 4xx 错误可以由用户修复,而 5xx 必须通过管理来修复(例如服务器端异常)所以发送不正确的请求应该在 4xx 范围内。
-
@zero298 我不认为这是官方的区别......但这是一种有趣的看待它的方式,谢谢。
-
http-status-code-500标签的描述是“请不要使用这个标签。对你的问题进行分类没有意义。”。请阅读标签说明,然后再将其用于您的问题。
标签: http error-handling http-status-codes http-status-code-400