为什么还需要应用层的Keepalive?

既然TCP有了keepalive,应用层还需要Keepalive多此一举吗?

  显然是不是的,首先协议分层思想,每层的关注点不同,TCP属于传输层,关注“通”,应用层关注是否能“用”,能“通”不一定能“用”,其次TCP层的Keepalive是默认关闭的,TCP层的keepalive时间太长,如果走默认的话那么它需要的时间为:(7500+75X9);

  另外需要注意的是:HTTP是属于应用层协议,我们时常听到一个名词“HTTP Keep-Alive”;指的是对长连接和短连接的选择:

  *Connection:Keep-Alive   长连接(HTTP/1.1默认长连接,不需要带这个header)

  *Connection:Close      短连接

原文地址:https://www.cnblogs.com/-qilin/p/11692978.html