11

HTTP 协议中的 Keep-Alive 连接功能旨在减少对 Web 服务器的 TCP 连接命中。它应该能够提高 Web 服务器的性能。但是,我发现一些 Web 服务器故意从服务器端禁用 KeepAlive 功能。

据我了解,一些反向代理,即HAProxy,会禁用HTTP keep-alive,以减少在某些情况下比CPU 使用更关键的内存使用。

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

4

1 回答 1

9

实际上,Keep-Alive 旨在提高 HTTP 性能,而不是服务器性能(尽管对于 SSL 连接,它确实降低了服务器重新协商加密的成本)。最大的胜利在于浏览器为获取内容而必须进行的往返次数。随着Keep-Alive浏览器在第一个请求之后消除了每个请求的完整往返,通常将整个页面加载时间减少一半。

Keep-Alive增加服务器负载,这就是一些共享主机提供商禁用它的原因。每个打开的连接都会消耗内存以及文件描述符(linux),在极端情况下(某些 Apache 配置),它可能具有从连接到进程的 1:1 映射。

于 2012-08-03T18:29:32.317 回答