响应信息里是否需要包含“Connection: Keep-Alive”?

响应信息里是否需要包含“Connection: Keep-Alive”?

根据我的理解,服务器使用Connection: Keep-Alive响应消息中的标头来告诉客户端,在发送响应消息后它不会关闭连接。

但是服务器有必要在响应消息中包含这个标头吗?或者服务器在发送响应消息后不关闭连接的默认行为是,如果服务器想要关闭连接,那么它会使用该标Connection: close头吗?

我说的是 HTTP/1.1。

答案1

答案是“否”。Keep-Alive 标头是 HTTP 1.0 语法,不包含在 HTTP 1.1 定义中。HTTP 1.1 默认为持久连接,不需要请求它们的机制。

类似问题请参阅 RFC。HTTP 1.1 在 RFC 中定义7230通过7237。RFC 有多种格式。

来自旧的HTTP1.1规范 RFC2068

19.7.1.1 Keep-Alive 标头

当 Keep-Alive 连接令牌已随请求或响应传输时,还可以包含 Keep-Alive 标头字段。Keep-Alive 标头字段采用以下形式:

     Keep-Alive-header = "Keep-Alive" ":" 0# keepalive-param
     keepalive-param = param-name "=" value

Keep-Alive 标头本身是可选的,仅在发送参数时使用。HTTP/1.1 未定义任何参数。

如果发送了 Keep-Alive 标头,则必须传输相应的连接令牌。如果在没有连接令牌的情况下收到 Keep-Alive 标头,则必须忽略该标头。

相关内容