今天我们来看一下Nginx的复用连接的功能--KeepAlive
keepalive 可以有效提高 http连接的使用效率。避免重复建立连接带来的消耗。
前面的文章分析Nginx建立连接的时候,如果Nginx是作为反向代理的,一个请求就会有2个连接,一个是对上游的,一个是对客户端的。
今天我们主要来看下客户端的keepalive。
它到底做了哪些事儿呢?
它可以将多个HTTP请求通过复用TCP连接来实现
1. 减少握手次数。这一点和连接池有点像。
2. 通过减少并发连接数,减少了服务器的资源消耗。大家知道服务器的文件描述符是有上限的,其次频繁的短链接还有可能造成大量的TIME_WAIT的情况。
3. 降低了TCP拥塞控制的影响。我们知道TCP有拥塞控制,所以窗口是逐渐增大的,如果我们的连接没有断开过,一直是保持在最佳状态。
有2个header:
Connection 如果是close就表示不启用Keepalive,请求完直接关闭连接。如果是keepalive就表示启用
<