既然TCP有了keepalive,应用层还需要Keepalive多此一举吗?
显然是不是的,首先协议分层思想,每层的关注点不同,TCP属于传输层,关注“通”,应用层关注是否能“用”,能“通”不一定能“用”,其次TCP层的Keepalive是默认关闭的,TCP层的keepalive时间太长,如果走默认的话那么它需要的时间为:(7500+75X9);
另外需要注意的是:HTTP是属于应用层协议,我们时常听到一个名词“HTTP Keep-Alive”;指的是对长连接和短连接的选择:
*Connection:Keep-Alive 长连接(HTTP/1.1默认长连接,不需要带这个header)
*Connection:Close 短连接