何时使用请求超时和网关超时

时间:2018-05-21 12:20:35

标签: java spring resttemplate http-status-codes

我正在编写第三方API的包装器。

如果我在一段时间内没有得到响应,我会抛出网关超时异常。

但我可以看到除 HttpStatus.GATEWAY_TIMEOUT

之外还有一个 HttpStatus.REQUEST_TIMEOUT

我不知道使用哪一个以及何时使用。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

一旦您的服务器充当上游服务器的网关或代理,您应该使用504来指示连接已超时。了解如何定义此状态代码:

  

6.6.5. 504 Gateway Timeout

     

504(网关超时)状态代码表示服务器,     作为网关或代理人,没有得到及时的回复     从它需要访问的上游服务器才能完成     请求。

408状态代码具有完全不同的含义,表示服务器希望关闭与客户端的未使用连接:

  

6.5.7. 408 Request Timeout

     

408(请求超时)状态代码表示服务器已执行      在该时间内没有收到完整的请求消息      准备等待。服务器应该发送“关闭”连接选项      在答复中,因为408暗示了这一点      服务器决定关闭连接而不是继续      等候。如果客户在途中有未完成的请求,那么      客户端可以在新连接上重复该请求。