2

让我们想象一个 Web 服务器处理一系列请求,其中一个由于某种原因而失败。在什么情况下服务器可以保持连接,在什么情况下应该关闭它?显然,403和404这样的错误可以在不关闭连接的情况下处理。如果响应的一部分已经发送,则错误很可能会导致连接关闭。

但是“正常”的 5xx 错误呢?流行的 Web 服务器实现是倾向于保留管道还是关闭它们?

非常感谢所有信息。

4

1 回答 1

0

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

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

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

于 2012-05-25T02:56:19.870 回答