TCP属于传输层,关于TCP的设置在内核态完成
HTTP属于用户层的协议,主要用于web服务器和浏览器之间的
- http的Keep-Alive都是为了减少多次建立tcp连接采用的保持长连接的机制,而tcp的keepalive是为了保证已经建立的tcp连接依旧可用(双端依旧可以通过此tcp连接进行正常通信)。
- http的keep-Alive设置在http的connection字段中,可以设置connection字段为close来进行关闭(http1.1之后默认开启长连接,设置为Keep-alive),tcp的保活机制是协议设置层面实现的,由内核进行实施。
- http的keep-alive是在keepalive_timeout参数设置的时间之后依旧双端依旧没有通信,就会触发回调函数结束连接,tcp的保活设置保活计时器,长时间无数据交互,会发送保活报文,服务端无响应,连续几次后,结束连接,有相应重置保活计时器。
- http的长连接通过应用程序进行实现,tcp的保活通过内核实现