HTTP:对下游请求失败的正确响应

时间:2016-04-23 18:00:10

标签: http http-status-codes

说我有服务http://myservice.dev:8080/resource/get/id,它会调用另一项服务http://otherservice.dev:8080/resource/get/name。如果第二个服务没有响应,因为它已关闭,那么调用服务应该返回给客户端的正确响应是什么?假设请求调用第二个服务至关重要。

我在考虑504网关超时,但听起来这是针对上游网关......

1 个答案:

答案 0 :(得分:1)

TL; DR是,504在大多数情况下是合适的

upstream服务器的定义很重要:

  

在计算机网络中,上游服务器是指向另一台服务器提供服务的服务器。   1

所以,在你提及的情况下,是的,' otherservice'可以被认为是上游服务器,因此像502和504这样的HTTP响应代码是合适的。

话虽如此,根据您的使用情况,向客户端公开有关上游服务器的信息可能并不明智。对于客户端,有多少其他服务是依赖关系可能与此无关。特别是如果您将来重新设计或重新配置,那么“其他服务”就是其中之一。可能会成为“我的服务”的一部分。因此,故障应适当标记为500(内部服务错误)或503(服务不可用)。

1 https://en.wikipedia.org/wiki/Upstream_server