在 http/1.1 协议中,不论是请求头还是响应头中都有一个名为 connection 的头部字段,它的主要作用是开启客户端和服务器的长连接(也叫持久连接)功能,所谓长连接就是在请求或响应的数据传输完成后,并不断开客户端与服务器的网络连接,当再有请求或响应时继续使用这个网络连接。connection 头的语法格式如下所示:
connection: 指令名称
在 http/1.0 协议中,长连接是默认关闭的,如果想要使用的话需要使用 keep-alive 指令,如下所示:
connection: keep-alive
假如客户端发起一条包含connection: keep-alive
的请求,服务器在收到后,如果服务器也支持长连接,那么服务器则会回复一条包含connection: keep-alive
的响应,但不关闭连接;反之则回复一条包含connection: close
的响应,并关闭连接。如果客户端收到一条包含connection: keep-alive
的响应,客户端会继续使用当前连接发送下一个请求,直到客户端或服务器中的一方主动关闭连接。
因为开启长连接在很多情况下能够重用连接,减少资源消耗,缩短响应的时间。所以在 http/1.1 协议中默认就是开启了长连接,如果想要关闭的话则需要使用 close 指令,如下所示:
connection: close