Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
让我们想象一个 Web 服务器处理一系列请求,其中一个由于某种原因而失败。在什么情况下服务器可以保持连接,在什么情况下应该关闭它?显然,403和404这样的错误可以在不关闭连接的情况下处理。如果响应的一部分已经发送,则错误很可能会导致连接关闭。
但是“正常”的 5xx 错误呢?流行的 Web 服务器实现是倾向于保留管道还是关闭它们?
非常感谢所有信息。
我认为通常连接不会因 5xx 错误而关闭,因为它们特定于请求,而不是连接,因此同一连接上的不同请求可能针对另一个资源。
只有在存在无法保持打开状态的原因(例如 NTLM 身份验证失败 (401),这取决于连接)时,才应关闭连接。由于几乎所有其他原因,连接应该保持打开状态,因为请求是独立的,并且 HTTP 确实没有连接语义。
但是,我不知道流行的 Web 服务器实现是做什么的。如果你能解释更多你试图解决的问题(你为什么关心连接是否关闭),那么也许我们可以提供更多信息。