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三次握手和四次挥手。

相关推荐
网硕互联的小客服1 小时前
服务器防火墙是如何区分正常流量和攻击流量?
运维·服务器·网络
lang201509282 小时前
Logback TCP 远程日志实战:构建高可用的集中式日志中心
网络协议·tcp/ip·logback
勇敢牛牛_3 小时前
【conreg-client】在Rust中使用向Feign一样的远程调用
网络·rust·feign
double2li3 小时前
linux/unix 段错误捕获【续】
linux·运维·服务器·网络·unix
qq_260241233 小时前
将盾 CDN:网络网站安全防护体系与实践
网络·安全
dashizhi20153 小时前
禁止复制电脑文件、电脑机密数据禁止拷贝、禁止电脑文件复制到U盘和移动硬盘的方法
运维·网络·stm32·安全·电脑
Ralph_Y3 小时前
C++网络:一
开发语言·网络·c++
猪猪侠|ZZXia3 小时前
# Openssl关键知识
linux·网络
程序猿编码4 小时前
探秘 SSL/TLS 服务密码套件检测:原理、实现与核心设计(C/C++代码实现)
c语言·网络·c++·ssl·密码套件
江南西肥肥4 小时前
养虾日记[特殊字符]:多Agent在飞书群辩论--踩坑篇
网络·飞书·openclaw