502 是数据库错误的适当状态代码吗?

Is 502 an appropriate status code for a database error?

502 Bad Gateway状态码的定义是:

The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfill the request.

如果错误是由数据库引起的,它是否是响应的适当状态代码?尽管 500 Internal Server Error 状态代码的定义并未说明错误必须是内部错误,但我不喜欢在错误是外部错误时使用它。

网络服务器是否可以被视为网关或代理,因为它正在执行与数据库通信以外的任务,例如调用其他 API 和服务?

不,我认为发生数据库错误时 HTTP 502 Bad Gateway 错误不合适。

HTTP 错误与 HTTP 协议有关。此特定错误表示服务器正在尝试中继 HTTP 请求,但上游服务器未正确响应。

您与数据库服务器通信的 Web 应用程序不在 HTTP 范围内,任何错误都应包含在通用 HTTP 500 Internal server error 响应代码中。

没有数据库错误状态代码的参考。您可以使用 500 Internal Server Error 作为回应。