让我们假设一个Web服务器处理一个请求管道,其中一个由于某种原因而失败。在什么情况下服务器可以保持连接,在什么情况下它应该关闭它? 显然,可以在不关闭连接的情况下处理诸如403和404之类的错误。最有可能的是,如果已经发送了部分响应,则错误将导致连接关闭。
但是“普通”5xx错误呢?流行的Web服务器实现是否会保留流水线或关闭它们?
非常感谢所有信息。
答案 0 :(得分:0)
我认为通常连接不会因5xx错误而关闭,因为它们特定于请求,而不是连接,因此同一连接上的不同请求可能是另一个资源。
只有在无法保持打开的情况下才能关闭连接(例如,NTLM身份验证失败(401),这取决于连接)。由于几乎所有其他原因,连接应该保持打开状态,因为请求是独立的,HTTP实际上没有连接语义。
但是,我不知道流行的Web服务器实现是做什么的。如果您可以解释更多您要解决的问题(为什么关心连接是否关闭),那么也许我们可以提供更多信息。