Keep-Alive 和非 Keep-Alice的差别
2022-03-15 / 2 min read
这里的意思就是保持连接,和不保持连接
理解
我们如何来理解这个问题呢,keep-alive 和非 keep- alive的区别。其实是很好理解的,我们在非keep-alive中我们请求一个资源我们就要建立一个连接,keep-alive就很好理解了,下面我们通过一个图片来看理解一下。
区别与缺点
两者的区别和缺点,我们也很好的能通过上图看出来
非Keep-alive
我们每请求一个资源我们就要进行一个连接,然后我们创建一个连接是需要付出相应的成本的,建立一个连接,客户端和服务端都要分配一个TCP的缓冲区和变量这样会对服务器造成严重的负担。
Keep-alive
keep-alive很好的解决了上面的问题,也就是对于服务器严重的负担,但是他也不是完美的,因为保持连接,很可能造成资源的无效占用。这就是对资源的一种浪费。
当然我们也有相应的解决办法,也就是我们需要正确的设置keepalive-timeout的时间,超过这个时间过后我们就断开连接,这样我们就可以解决资源无效占用的问题。