HTTP流水线和错误处理

时间:2012-05-25 02:41:53

标签: http sockets

让我们假设一个Web服务器处理一个请求管道,其中一个由于某种原因而失败。在什么情况下服务器可以保持连接,在什么情况下它应该关闭它? 显然,可以在不关闭连接的情况下处理诸如403和404之类的错误。最有可能的是,如果已经发送了部分响应,则错误将导致连接关闭。

但是“普通”5xx错误呢?流行的Web服务器实现是否会保留流水线或关闭它们?

非常感谢所有信息。

1 个答案:

答案 0 :(得分:0)

我认为通常连接不会因5xx错误而关闭,因为它们特定于请求,而不是连接,因此同一连接上的不同请求可能是另一个资源。

只有在无法保持打开的情况下才能关闭连接(例如,NTLM身份验证失败(401),这取决于连接)。由于几乎所有其他原因,连接应该保持打开状态,因为请求是独立的,HTTP实际上没有连接语义。

但是,我不知道流行的Web服务器实现是做什么的。如果您可以解释更多您要解决的问题(为什么关心连接是否关闭),那么也许我们可以提供更多信息。