你好,我是小 G。TCP Keepalive 和 HTTP Keep-Alive 的对比,经常作为面试题出现在技术面试中。这篇文章来详细聊一聊。
简单来说,这俩只是后缀名字一样,但完全不是一回事,毕竟一个在应用层,一个在传输层,根本不在同一层:
- HTTP Keep-Alive 是应用层的机制,解决的问题是:一个 TCP 连接能不能被多个 HTTP 请求复用,别每次请求都重新握手。
- TCP Keepalive 是传输层的机制,解决的问题是:一条 TCP 连接长时间没有数据往来,怎么判断对端还在不在,要不要把连接占用的资源回收掉。
