在什么情况下REST API应该返回HTTP状态503
标准说:在什么情况下REST API应该返回HTTP状态503
10.5.4 503服务不可用。由于服务器暂时过载或维护,服务器当前无法处理该请求。这意味着这是暂时的情况,经过一段时间后会缓解。
REF:https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
如果服务器具有数据库的访问级别的锁蒋廷黻,应该在这样的情况下,服务器返回503。或者是503个状态意味着:
- 网络过载
- DOS类型的情况下
- 刷爆了负载均衡
- 明确的维护窗口。
很有道理什么其他情况下,返回HTTP状态503
任何详细的澄清是非常赞赏。
假设服务遇到数据库争用。对于服务器必须做什么没有规定。但是,如果您认为问题是暂时的,并且一段时间后会解决,您可以选择退还503。您可以指定Retry-After标题来通知主叫方何时可以重试。这对于允许调用者自动从问题中恢复尤其有用。您可以将其用于其他一些场景,以及呼叫者可以在指定的时间段后自动重试。
状态代码服务2周的目的
- 让来电者知道发生了什么
- 让来电者知道他可以做下一个
发送的主叫方503重发后提供更多的选择给调用者比发送500.当然,调用者可以完全忽略Retry-After,并将其视为500,但作为服务提供者你提供更多的信息和选项。
The updated spec,仅供参考。
如果服务器具有数据库的访问级别的锁蒋廷黻,应该在这种情况下
服务器返回503请记住,在REST模式HTTP状态代码是不是说明您的服务存在问题;他们改为在文档存储中描述类似的条件。
503是文档商店说“我太忙了,以后再试。”的方式。
很有道理什么其他情况下,返回HTTP状态503
背压。从Martin Thompson
应用背压是具有持续高负荷,从而最大吞吐量可以在不降低系统性能的已被接受的要求和交易交付应对一个有效的方法。
当我们需要支持像REST同步协议,然后用反压,我们完全进入队列信号在网关,发送一个有意义的“服务器忙”的消息,如HTTP 503状态码