从Web服务器端保持活力的优点和缺点

HTTP协议中的Keep-Alive连接function旨在减less到Web服务器的TCP连接命中。 它应该能够提高Web服务器的性能。 不过,我发现一些networking服务器故意从服务器端禁用KeepAlivefunction。

在我的理解中,一些反向代理(即HAProxy)会禁用HTTP保持活动状态,以便在某些情况下减less比CPU使用率更重要的内存使用量。

Web服务器禁用Keep-Alive还有其他原因吗?

保持活力意味着减lesstcp-setup的数量,这些tcp-setup很健谈,并受到延迟的严重影响。 它的主要目标是提高客户端性能 – 对于现代服务器来说,build立TCP连接的成本很低。

一些代理/负载均衡器会使Web服务器保持活动状态,因为它们假定实际的服务器,并且在局域网上的延迟可以忽略不计,因此可以忽略tcp安装惩罚。 这也减less了平衡软件的复杂性,因为在input和输出之间(从LB的angular度来看)并不一定是一对一的关系。

有几个原因,为什么服务器将禁用保持活着,所以我怀疑这可能是pipe理员的错。 a-child-per-connection服务器(apache)是一个例外,即使总体浏览器体验(和带宽使用)变得更差,尽快释放子/线程也是有优势的。

请注意,afaik保持活动是一个可选function,不需要服务来实现它。