什么是 KeepAlive?
KeepAlive 是指网络系统中的一种通信形式,其中设备或软件定期交换信号以验证它们之间的连接是否保持活动状态。 按照预定的时间间隔,一方发送 KeepAlive 信号,接收方将其解释为连接正常运行的确认。 如果在一定时间内没有收到 KeepAlive 信号,系统将假定连接已丢失,并启动关闭通信通道、结束会话或重新连接等过程。
在 TCP 中,该功能称为 TCP KeepAlive。 在服务器端,此功能会自动释放与无法访问的客户端的连接相关的资源。 在客户端,TCP KeepAlive 支持自动重新连接,例如当服务器的 IP 地址由于故障转移而发生变化时。
在HTTP中,提供了KeepAlive特性来明确维护客户端和服务器之间的TCP连接。 这减少了所需的 TCP 连接数,节省了连接资源并提高了性能。 当网页加载时,不仅需要传输主 HTML 文件,还需要传输相关资产,如图像、CSS 和 JavaScript 文件。 通常,传输这些文件需要为每个文件建立单独的 TCP 连接。 但是,启用 KeepAlive 后,这些传输可以通过单个 TCP 连接执行。 虽然此功能在 HTTP/1.0 中是可选的,但自 HTTP/1.1 以来,KeepAlive 已默认启用。