【问题标题】:What else can an HTTP status code of 500 represent besides a bug?HTTP 状态码 500 除了 bug 还能代表什么?
【发布时间】:2021-09-18 21:29:24
【问题描述】:

在使用我公司的 Web API 以及其他人的 API 时,我一直认为只有在出现实际服务器错误的情况下才应该返回 500 响应代码。如果我,用户,在调用中出错,有 4xx 代码;而 500 表示我的调用没有问题,但服务器无法弄清楚该怎么做,甚至可能在处理我的请求时遇到异常。我坚持认为 500 应该在服务器端记录并更正。

但我错了吗? 500 响应代码是否有适当的用途?尤其是在某些情况下,在不纠正导致它的条件的情况下始终返回 500 是否有意义?

换句话说,当我使用我们公司的 API 并获得 500 分时,我(作为自动化开发人员)的反应是“修复错误”。

500 有哪些不涉及要修复的错误的用途?

【问题讨论】:

标签: http-status-codes http-status-code-500


【解决方案1】:

500 状态或多或少是针对任何可能阻止服务器执行请求的服务器特定问题的包罗万象的状态。如果有可用的特定于矿石的错误代码,服务器可能会使用这些错误代码,或者可能(出于各种原因)决定只使用包罗万象的500 状态代码。

状态码本身并不能表明错误是永久性的还是暂时的,或者是在什么情况下引起的。虽然服务器可能会提供其他信息(例如错误类型或可能的重试间隔),但没有通用标准来表达这一点。相反,应用程序可以选择适当的消息格式。

因此,虽然通常会发送 500 状态以响应服务器端无法以更适当的方式处理的其他未处理的异常情况,但根据应用程序,它也可能是故意发送的。这里的具体语义取决于应用程序。

【讨论】:

    猜你喜欢
    • 2019-04-13
    • 2013-10-25
    • 2011-07-07
    • 2023-03-25
    • 2011-01-01
    • 2014-01-08
    • 2018-01-29
    • 1970-01-01
    • 2012-12-04
    相关资源
    最近更新 更多