HTTP协议中的Keep-Alive连接功能旨在减少到Web服务器的TCP连接命中.它应该能够提高Web服务器性能.但是,我发现一些Web服务器故意从服务器端禁用KeepAlive功能. 在我的理解中,一些反向代理,即
在我的理解中,一些反向代理,即HAProxy,禁用HTTP keep-alive以减少内存使用,这在某些情况下比CPU使用更为关键.
是否还有其他原因导致Web服务器禁用Keep-Alive?
实际上,Keep-Alive旨在提高HTTP性能,而不是服务器性能(尽管对于SSL连接,它确实降低了服务器上重新协商加密的成本).最大的胜利在于浏览器为获取内容而必须进行的往返次数.使用Keep-Alive,浏览器可以在第一次请求后消除每次请求的完整往返,通常将整页加载时间缩短一半.Keep-Alive会增加服务器负载,这就是某些共享主机提供商禁用它的原因.每个开放连接都消耗内存以及文件描述符(linux),在极端情况下(某些Apache配置),它可能具有从连接到进程的1:1映射.