Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 外部依赖项错误的HTTP状态424或500_Rest_Http Status Codes - Fatal编程技术网

Rest 外部依赖项错误的HTTP状态424或500

Rest 外部依赖项错误的HTTP状态424或500,rest,http-status-codes,Rest,Http Status Codes,我正在尝试创建一个具有2个依赖项的服务。其中一个依赖项是内部管理的,而第二个依赖项需要对第三方API进行外部http出站调用。该序列需要更新资源,然后执行http出站调用 所以我的问题是,在第二步发生故障时,要返回的正确http状态码是什么 响应应该是424还是500,并带有解释遇到错误的消息正文 424:方法失败-表示该方法未在其作用域内的特定资源上执行,因为该方法的某些部分执行失败,导致整个方法中止 500:内部服务器错误 您所询问的故障是服务本身内部发生的故障,因此5xx状态代码范围是正

我正在尝试创建一个具有2个依赖项的服务。其中一个依赖项是内部管理的,而第二个依赖项需要对第三方API进行外部http出站调用。该序列需要更新资源,然后执行http出站调用

所以我的问题是,在第二步发生故障时,要返回的正确http状态码是什么

响应应该是424还是500,并带有解释遇到错误的消息正文

  • 424:方法失败-表示该方法未在其作用域内的特定资源上执行,因为该方法的某些部分执行失败,导致整个方法中止
  • 500:内部服务器错误
您所询问的故障是服务本身内部发生的故障,因此5xx状态代码范围是正确的选择。503服务不可用看起来非常适合您描述的情况

5xx代码用于告诉客户机,即使请求很好,服务器在满足请求时也出现了某种问题。另一方面,4xx代码用于告诉客户端它做错了什么(并且服务器很好,谢谢)。解释4xx和5xx代码的不同用途


状态代码424在中定义,适用于客户端需要更改其正在执行的操作的情况-服务器在此没有遇到任何问题。

503服务不可用适用于服务器希望缓解的问题(例如,如果它从上游服务器获得503服务)。502坏网关应用于来自上游服务器的未知错误,您不知道如何响应。

由于第二个操作是外部服务调用,您应该根据情况选择502或504

引自:

10.5.3 502坏网关

服务器在充当网关或代理时,从其在尝试完成请求时访问的上游服务器接收到无效响应

  Note: Note to implementors: some deployed proxies are known to
  return 400 or 500 when DNS lookups time out.
10.5.4 503服务不可用

由于服务器临时过载或维护,服务器当前无法处理请求。这意味着,这是一种暂时的情况,延迟一段时间后会得到缓解。如果已知,延迟的长度可以在Retry After标头中指示。如果没有在之后重试,客户端应该像处理500响应一样处理响应

  Note: The existence of the 503 status code does not imply that a
  server must use it when becoming overloaded. Some servers may wish
  to simply refuse the connection.
10.5.5 504网关超时

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

  Note: Note to implementors: some deployed proxies are known to
  return 400 or 500 when DNS lookups time out.

我相信502或504应该是正确的HTTP错误,正如@mustafaturan在下一篇评论中提到的那样。在这里,外部依赖没有响应。因此,当前服务器不必因为服务不可用而被贴上故障标签。如果我错了,请纠正我。