rest - 如果数据库服务器超时,返回 HTTP 504 Gateway Timeout 作为响应是否合适?

标签 rest timeout http-status-code-504

在 REST 服务中,当应用程序等待数据库查询超时并且无法完成客户端的请求时,返回 504 状态代码是否合适?

504 Gateway Timeout

The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.



目前我们只显示一个通用的 500 错误,它在 UI 中显示为一个通用的服务器错误。有一些实用程序可以向用户显示这是一个数据库超时错误(也许还有减少他们要求的范围的建议),因为如果他们联系任何人,至少他们会获得更多有用的信息负责他们的服务器。

任何其他 REST 服务如何处理数据库超时的指针?

最佳答案

我也会返回 500,有效载荷中的详细信息表明出了什么问题。这是来自 RFC 2616 的 504 的描述:

服务器在充当网关或代理时未收到
来自 URI 指定的上游服务器的及时响应(例如
HTTP、FTP、LDAP)或它需要的其他一些辅助服务器(例如 DNS)
访问以尝试完成请求。

504 的错误描述表明服务器正在充当网关或代理,而您的服务绝对没有这样做。

关于rest - 如果数据库服务器超时,返回 HTTP 504 Gateway Timeout 作为响应是否合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21223228/

相关文章:

ios - 无法从 Apple APN 生产服务器获得响应

c# - WCF - (504) 服务器未返回对此请求的响应

java - 如何在 Rest Webservice 中返回数组列表

java - 如何在 Google App Engine 上创建 RESTful 客户端?

java - 如何使用数据对象而不是 String[][]

javascript - 使用地理定位选择 REST 服务器

node.js - setTimeout - JavaScript 堆内存不足

performance - Tornado AsyncHTTPClient 请求在中等负载下超时

linux - 在端口 25 上 Telnet 时 aws 上的连接超时

deployment - Shiny App 未部署 : Error pushing repository: 504 Gateway Time-out Execution halted