在响应消息中使用“Connection: close”是什么意思?

use*_*656 47 networking http

当客户端使用Connection: close请求消息中的头时,这意味着它希望服务器在发送响应消息后关闭连接。

我以为这个头只用在请求消息中,但我注意到它也用在响应消息中。例如:

在此处输入图片说明

在响应消息中使用此标头时,该标头意味着什么?

我认为这意味着服务器将在发送响应消息后关闭连接(即使客户端Connection: keep-alive在其请求消息中使用了标头)。我对么?

Sve*_*ven 43

是的,这是正确的。服务器可以说“我不支持你的保持活动请求,我完成后将关闭连接”。

来自 RFC 2616,第 14.10 节:

HTTP/1.1 为发送方定义了“关闭”连接选项,以
表示在
响应完成后将关闭连接。例如,

   Connection: close
Run Code Online (Sandbox Code Playgroud)

在请求或响应头字段中,表明
在当前请求/响应完成后,连接不应被视为“持久”(第 8.1 节)。

不支持持久连接的 HTTP/1.1 应用程序必须在每个消息中包含“关闭”连接选项。

  • 这很奇怪IMO,如果服务器可以简单地关闭它,为什么要说连接将被关闭?客户端不应该只是看到连接已被服务器关闭。知道这个标题有什么意义吗?我在这里看不到任何价值。 (4认同)
  • @BasilA 看起来你是对的。有趣的。_Connection 通用头域允许发送方指定该特定连接所需的选项,并且不得由代理通过进一步的连接进行通信。_ (4认同)
  • @Pavel Web 应用程序在响应中包含“连接:关闭”http 标头,以防它要通知前端负载均衡器关闭保持活动连接,以防负载均衡器正在使用连接。 (3认同)
  • @Pavel负载均衡器通常从多个客户端接收多个连接,并通过保持活动连接使用多路复用来利用与后端的相同连接。当某些后端可能不想参与此多路复用时,后端 http 响应应包含“连接:关闭”以通知负载均衡器关闭其连接并停止多路复用。AWS 负载均衡指南(向下滚动到“HTTP 连接”)中对此进行了详细描述 https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html (2认同)