502 Bad Gateway状态代码的定义是:

服务器在充当网关或代理时,在try 完成请求时从其访问的upstream 服务器收到无效响应.

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

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

推荐答案

不,我认为当数据库发生错误时,HTTP 502 Bad Gateway错误是不合适的.

HTTP错误在某种程度上说明了HTTP协议.此特定错误表示服务器正在try 中继HTTP请求,但upstream 服务器没有正确响应.

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

Database相关问答推荐

Postgres和Oracle之间 Select 查询的结果差异

KUST查询指定时间跨度内里程表&值的差值,并将其滚动到0

无法初始化数据库,出现错误无法连接到`host=db user=database=`:拨号错误(dial tcp xxxx: connect: connection refused)

什么是 CREATE VIEW IF NOT EXISTS in postgresql

如何理解 CAP 定理的可用性?

Phonegap如何在android上保存永久数据

有没有办法为 2 个具有不同包名称的应用程序提供 1 个 Firebase 数据库?

无法使用命令行运行 liquibase

在 iphone 上本地存储数据

在 MySQL 存储过程中使用if和else

SQLite同时读写

如何在我的 SQL Server 代理作业(job)中创建一个将运行我的 SSIS 包的步骤?

数据完整性和数据一致性之间有什么区别吗?

postgreSQL 同时将列类型从 int 更改为 bigint

将一行连接到另一个表中的多行

将内存数据库保存到磁盘

分离实体和被管理实体

用于 sql 表中的状态列的类型

如果值不为空,则用于更新数据库的 Sql 查询?

无需安装的轻量级 SQL 数据库