http的keepalive和tcp的keepalive

1.HTTP的keepalive

在http1.0的时候,每个http请求都是要求打开一个tcp socket,并且使用一次之后就断开这个tcp连接了。使用keepalive可以改善这种状态,即在一次tcp连接中可以持续发送多份数据而不会断开连接。通过使用keepalive技术可以减少tcp连接次数,也意味着可以减少time_wait状态,以此来提高性能。但是keepalive也有一定的缺点:长时间的tcp连接容易导致系统资源的无效占用。

2.TCP的keepalive

链接建立之后,如果应用程序或者上层协议一直不发送数据,或者隔很长时间才发送一次数据,当链接很久没有数据报文传输时如何去确定对方还在线,到底是掉线了还是确实没有发送数据,链接还需不需要保持,这种情况下tcp协议中给出了一个方法:当超过一段时间之后,TCP自动发送一个数据为空的报文给对方,如果对方回应了这个报文,说明对方还在线,链接可以继续保持,如果对方没有报文返回,并且重试了很多次之后则认为链接丢失,没有必要继续保持链接。

说到底,tcp的keepalive机制和http的keepalive机制是两种不同的东西,tcp的keepalive是在establish状态的时候,双方如何检测链接的可用性。而http的keepalive说的是如何避免进行重复的tcp三次握手和四次挥手。

相关推荐
czxyvX1 小时前
019-Linux-Socket编程-TCP
linux·tcp/ip
加农炮手Jinx7 小时前
Flutter for OpenHarmony 实战:JWT — 构建安全的无状态认证中心
网络·flutter·华为·harmonyos·鸿蒙
iambooo8 小时前
Shell在日志分析与故障排查中的实战应用
linux·服务器·网络
_麦麦_8 小时前
《九章云络书·织网布阵玄机》上篇
网络·智能路由器
雷帝木木8 小时前
Flutter for OpenHarmony:Flutter 三方库 money2 — 坚不可摧的鸿蒙金融核心组件
网络·flutter·http·华为·金融·harmonyos·鸿蒙
余瑜鱼鱼鱼9 小时前
数据链路层相关知识总结
网络
打码人的日常分享11 小时前
数据中心信息中心信息科管理制度
大数据·运维·网络·云计算·制造
宁雨桥14 小时前
详解Web服务部署:IP+端口 vs IP+端口+目录 实战指南
前端·网络协议·tcp/ip
mftang14 小时前
WebSocket协议与其他通信协议有什么区别?
网络·websocket·网络协议
funnycoffee12315 小时前
H3C交换机查看日志命令display logbuffer
运维·网络·h3c logbuffer·h3c日志