HTTP keep-alive和TCP keepalive详解

文章目录

    • 1、简介
    • [二、TCP keepalive](#二、TCP keepalive)
    • [三、HTTP keep-alive](#三、HTTP keep-alive)

1、简介

TCP是传输层的协议,HTTP是应用层的协议

HTTP中是keep-alive,TCP中是keepalive。这两个完全是两样不同东西

TCP keepalive是用来心跳包检测,是为了提高可靠性的;是由 TCP 层(内核态)实现的,称为 TCP 保活机制

HTTP keep-alive 是用来设置生效(开关),复用 TCP 连接,是为了提高性能的。是由应用层(用户态)实现的,称为 HTTP 长连接

在服务器端的保活

http保活 没有主动探测报文,无响应超时就关闭连接。tcp长连接 保活2小时后会主动探测,有响应则进入下一次保活周期。无响应则retry后关闭连接

二、TCP keepalive

TCP的保活机制就是用来解决在双方长时间未通讯时,得知对方还存活。这个机制称作:keepalive。保活机制默认是关闭的,TCP连接的任何一方都可打开此功能。

有三个主要配置参数用来控制保活功能:

·保活时间:tcp_keepalive_time

·探测时间间隔:tcp_keepalive_intvl

·探测循环次数上限:tcp_keepalive_probes

在探测过程中,客户主机必须处于下表中的4个状态之一。

三、HTTP keep-alive

HTTP协议简介中提到http协议是一个运行在TCP协议之上的无状态的应用层协议。它的特点是:客户端的每一次请求都要和服务端创建TCP连接,服务器响应后,断开TCP连接。下次客户端再有请求,则重新建立连接。

keep-alive机制:若开启后,在一次http请求中,服务器进行响应后,不再直接断开TCP连接,而是将TCP连接维持一段时间。在这段时间内,如果同一客户端再次向服务端发起http请求,便可以复用此TCP连接,向服务端发起请求,并重置timeout时间计数器,在接下来一段时间内还可以继续复用。这样无疑省略了反复创建和销毁TCP连接的损耗。

相关推荐
一轮弯弯的明月6 小时前
TCP传输大致过程、流量控制与拥塞控制
网络·tcp/ip·计算机网络·学习心得
皇帝要考研6 小时前
【ISO 13400-2:2019】核心配置项
网络·网络协议
JoySSLLian7 小时前
IP SSL证书:一键解锁IP通信安全,高效抵御网络威胁!
网络·人工智能·网络协议·tcp/ip·ssl
云小逸8 小时前
【网络通信】DNS、SNMP、DHCP 等 UDP 服务解析
网络·网络协议·udp
半壶清水9 小时前
[软考网规考点笔记]-操作系统核心知识及历年真题解析
网络·网络协议·算法
方芯半导体11 小时前
EtherCAT “通信 + 控制“ 的全国产化控制方案,ESC芯片(FCE1323)与国产MCU芯片功能板解析
xml·网络·单片机·嵌入式硬件·网络协议·机器人·自动化
Zach_yuan12 小时前
UDP网络编程:从入门到精通
linux·网络·网络协议·udp
B2_Proxy12 小时前
破解TikTok运营困境:静态住宅IP与封号限流深度解析
网络·网络协议·tcp/ip
wheeldown12 小时前
【Linux网络编程】 Linux TCP网络编程:客户端开发+守护进程实战
linux·网络·tcp/ip
文章永久免费只为良心13 小时前
一站式综合查询工具:IP、企业信息与网络空间资产高效查询工具
网络·网络协议·tcp/ip