我有一个运行时间很长的servlet,如果发生超时,我想中止该进程。 (运行良好的servlet是另一个讨论)。
现在,当我在服务器中止请求时,应该发送HTTP 408或HTTP 503或其他适当的状态。
408看起来更像是客户端错误,而503看起来更像是过载/维护状态。并且找不到合适的响应状态。
答案 0 :(得分:4)
由于这是服务器错误,因此应以5XX开头。 根据Wikipedia的说法,我认为504更适合您,
504网关超时
该服务器充当网关或代理,没有收到上游服务器的及时响应。
答案 1 :(得分:0)
408表示请求超时。来自维基百科:
服务器超时,等待请求。根据HTTP 规范:“客户未在时间内提出要求 服务器已经准备好等待。客户可以重复 请求,以后不做任何修改。”
因此,我认为这不适合您的情况。因为超时的原因是服务器本身。 (一些长时间运行的过程等)
503表示服务不可用。正如您所说,这是关于过载/停机问题,也不适合您的情况。
因此,您可以使用HTTP 500作为常规错误响应进行响应。
500 Internal Server Error:通用错误消息,当 遇到意外情况,没有其他具体消息 适合。