Keep-Alive 头

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

HTTP Keep-Alive 请求响应头允许发送方提示连接在超时和最大请求量方面的使用方式。

注意:要使 Keep-Alive 生效,消息还必须包含 Connection: keep-alive 头。

HTTP/1.0 默认在每次请求/响应交互后关闭连接,因此 HTTP/1.0 中的持久连接必须明确协商。一些客户端和服务器可能希望与以前的持久连接方法兼容,可以通过 Connection: keep-alive 请求头来实现。可以使用 Keep-Alive 头请求连接的附加参数。

警告:HTTP/2HTTP/3 中,禁止使用连接特定的头字段,例如 ConnectionKeep-Alive。Chrome 和 Firefox 在 HTTP/2 响应中忽略它们,但 Safari 符合 HTTP/2 规范要求,并且不加载任何包含它们的响应。

头类型 请求标头, 响应标头
禁止请求头

语法

http
Keep-Alive: <parameters>

指令

<参数>

逗号分隔的参数列表,每个参数由一个标识符和一个等号(=)分隔的值组成。可能的标识符如下:

超时

一个整数,表示主机在关闭空闲连接之前允许其保持打开状态的秒数。如果主机没有发送或接收数据,则连接是空闲的。主机可以将空闲连接保持打开状态超过 timeout 秒,但主机应尝试将连接保持至少 timeout 秒。

max

一个整数,表示在关闭连接之前可以发送的最大请求数。除非为 0,否则对于非管道连接,此值将被忽略,因为下一个响应中将发送另一个请求。HTTP 管道可以使用它来限制管道化。

示例

包含 Keep-Alive 头的响应

http
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Thu, 11 Aug 2016 15:23:13 GMT
Keep-Alive: timeout=5, max=200
Last-Modified: Mon, 25 Jul 2016 04:32:39 GMT
Server: Apache

(body)

规范

规范
HTTP/1.1
# 兼容 http 1.0 持久连接

浏览器兼容性

另见