首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTP KeepAlive可以替代TCP KeepAlive吗?

HTTP KeepAlive可以替代TCP KeepAlive吗?
EN

Stack Overflow用户
提问于 2019-11-28 05:22:55
回答 1查看 568关注 0票数 5

KeepAlive通过发送ACK来实现持久连接。HTTP KeepAlive可以为多个请求使用连接。

对于持久连接,如果使用HTTP KeepAlive,则该连接将在HTTP KeepAlive超时之间持久化。因此,正如标题中所描述的那样,HTTP成为TCP KeepAlive的替代品。

对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-28 05:36:23

HTTP KeepAlive成为TCP KeepAlive的替代品。

对吗?

不是的。这两者是完全不同的。

在HTTP中,如果没有保持活动集,每个请求都会涉及到自己的连接。当请求完成时,连接将关闭。如果设置好了连接,连接将被重用,但会达到一定的限制。

这完全是关于服务器和客户端是如何交互的,并且与底层网络层无关。

TCP保持活动功能确保连接上存在定期通信.理论上,TCP连接可以无限期地保持打开。但是在实践中,这样的连接可能必须遍历一些维护连接状态的网络组件(例如NAT路由器),并且在没有活动的情况下经过一段时间后就会丢弃该状态。

因此,TCP保持活动状态的一种方法是保持连接活动,以便这些组件保留连接所需的状态。

另一方面,TCP的特性之一是连接的物理链路可以被暂时中断,而不存在问题,只要在这个瞬间中断期间,两个端点都不需要连接。这通常是可取的,因为它允许透明地恢复中断。但在某些情况下,服务器或客户端需要及时显示中断。在这种情况下,使用“保持活动”功能会在连接上产生错误,否则不会发生错误,从而允许端点识别中断。

(顺便说一句,正是这种“在没有其他情况下产生连接错误”的效果,使我个人觉得应该避免使用TCP的“保持生存”功能。但是,它确实有其合法的用途,其他人可能会对利弊作出不同的评价。)

这些TCP保持活跃特性的效果都不是通过使用HTTP保持活动特性来实现的。因此,后者绝对不是前者的替代品。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59082206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档