4.15 TCP Keepalive 和 HTTP Keep-Alive 是一个东西吗?

目录

[HTTP 的 Keep-Alive](#HTTP 的 Keep-Alive)

[TCP 的 Keepalive](#TCP 的 Keepalive)

总结:


HTTP的Keep-Alive,是应用层(用户态)实现的,称为HTTP长连接;

TCP的Keepalive,是由TCP层(内核态)实现的,称为TCP保活机制。

HTTP 的 Keep-Alive

HTTP协议采用的是 请求-应答 模式,客户端发起请求,服务端返回响应,一来一回。

Keep-Alive 就是实现了可以使用同一个 TCP 连接来发送和接收多个 HTTP 请求/应答,避免了连接建立和释放的开销,这个方法称为 HTTP 长连接

请求的包头中添加:(从 HTTP 1.1 开始, 就默认是开启了 Keep-Alive

复制代码
Connection: Keep-Alive

为了避免资源浪费的情况,web 服务软件一般都会提供 keepalive_timeout 参数,用来指定 HTTP 长连接的超时时间。 定时器的时间一到,就会触发回调函数来释放该连接。

TCP 的 Keepalive

TCP 的 Keepalive 这东西其实就是 TCP 的保活机制, 需要通过 socket 接口设置 SO_KEEPALIVE 选项才能够生效。该功能是由「内核」实现的,当客户端和服务端长达一定时间没有进行数据交互时,内核为了确保该连接是否还有效,就会发送探测报文,来检测对方是否还在线,然后来决定是否要关闭该连接。

总结:

HTTP 的 Keep-Alive 也叫 HTTP 长连接,该功能是由「应用程序」实现的,可以使得用同一个 TCP 连接来发送和接收多个 HTTP 请求/应答,减少了 HTTP 短连接带来的多次 TCP 连接建立和释放的开销。

TCP 的 Keepalive 也叫 TCP 保活机制,该功能是由「内核」实现的,当客户端和服务端长达一定时间没有进行数据交互时,内核为了确保该连接是否还有效,就会发送探测报文,来检测对方是否还在线,然后来决定是否要关闭该连接。

相关推荐
振浩微433射频芯片5 小时前
433MHz在智能家居中的应用大全(二):智能安防篇——安全不容“信号死角”
网络·单片机·嵌入式硬件·物联网·智能家居
韭菜钟6 小时前
WIndows下一键切换网卡IP脚本
windows·网络协议·tcp/ip
fengfuyao9856 小时前
基于STM32的4轴步进电机加减速控制工程源码(梯形加减速算法)
网络·stm32·算法
瀚高PG实验室8 小时前
审计策略修改
网络·数据库·瀚高数据库
forAllforMe8 小时前
etherCAT的协议VoE,FoE,EoE,CoE的概念和区别
网络
大数据新鸟8 小时前
操作系统之虚拟内存
java·服务器·网络
迷藏4949 小时前
**eBPF实战进阶:从零构建网络流量监控与过滤系统**在现代云原生架构中,**网络可观测性**和**安全隔离**已成为
java·网络·python·云原生·架构
zmj3203249 小时前
汽车电子内部网络架构图
网络·汽车
汽车仪器仪表相关领域10 小时前
NHFID-1000型非甲烷总烃分析仪:技术破局,重构固定污染源监测新体验
java·大数据·网络·人工智能·单元测试·可用性测试·安全性测试
上海云盾-小余10 小时前
DDoS 攻击全解析:常见类型识别与分层防御思路
网络协议·tcp/ip·安全·ddos