HTTP Keep-Alive,又名 HTTP 持久连接,是一种指令,它允许单个 TCP 连接为多个 HTTP 请求/响应保持打开状态。
默认情况下,HTTP 连接在每次请求后关闭。当有人访问您的站点时,他们的浏览器需要创建新的连接来请求组成您的网页的每个文件(例如图像、Javascript 和 CSS 样式表),这一过程可能会导致 页面加载时间过长。
启用 Keep-Alive 允许您通过单个连接提供所有网页资源。Keep-Alive 还可以减少服务器上的 CPU 和内存使用量。
Keep-Alive的好处
HTTP Keep-Alive 设置可以维护客户端和服务器之间的连接,减少提供文件所需的时间。持久连接还会减少 TCP 和 SSL/TLS 连接请求的数量,从而导致往返时间 (RTT)下降 。
建立 TCP 连接首先需要三向传输——客户端和服务器之间相互交换 SYN 和 ACK 数据包,然后才能传输数据。使用 Keep-Alive 标头意味着不必经常执行此过程。这将会带来以下好处:
1.网络资源的保护 – 每个客户端使用单个连接对网络资源的负担较小。
2.减少网络拥塞 ——减少服务器和客户端之间的 TCP 连接数量可以减少网络拥塞。
3.减少延迟 – 减少三向传输的数量可以改善站点延迟。对于SSL/TLS 连接尤其如此 ,它需要额外的往返来加密和验证连接。
CDN 和 Keep-Alive 的关系
Keep-Alive允许 CDN 减少您站点的 RTT,同时仍然提供 SSL/TLS 安全优势。
Imperva CDN 使用 Keep-Alive 在用户会话之间保持与源服务器的开放连接,每次持续几分钟 - 只要在连接打开时访问您的站点,您的 CDN 就不需要参与任何新的 SSL/TLS 协议。
这将会节省大量的开销,这些开销本来用于每个新用户尝试发起与源的新连接的请求。相反,每个 CDN 代理服务器都能够利用其开放连接一次为多个用户下载资源。