keepalive
Http 协议中有一个keep-alive的状态,Tcp 三次握手中也有一个keep-alive的状态,从字面上看就多了一个‘-‘,它们两个是完全不同的。
一、Http协议中的keep-alive:
在访问一个页面的过程中,会请求很多次服务器去获取不同的网页内容,而http的每次请求都是无连接的,请求->发送->关闭,所以在多次请求的过程中会使用不同的tcp端口号和sockfd,这样会发生多次的断开和链接tcp的过程,可以想象这种情况对于服务器而言是想当不利的。
下面是我做的一个实验:我的搭建的服务器在一次网页请求中发生的链接和断开
可以看出,整个过程发生了3次链接和关闭的过程。
而 http 中keep-alive的作用就是复用tcp,在浏览器请求服务器http服务时,
服务器将保持当前的tcp链接一段时间,这个时间是可以通过keepalive_timeout
设置的。
浏览器在HTTP1.1下的keep-alive都是默认开启的。
二、TCP下的keepalive
TCP下的keepalive :
这个keepalive是一种检测TCP链接状况的保险措施,它会每隔一定的时间就去
client发送个数据,通过client端的反应来采取相应的措施。
所以:完全不同的两个keepalive
时间: 2024-11-19 21:12:08