HTTP 的长连接(Keep-Alive)是指在客户端与服务器之间建立的连接在完成一次请求-响应之后不立即关闭,而是保持打开状态,可以被用来发送多个请求和接收多个响应。
在传统的 HTTP/1.0 中,每个请求都会建立一个新的连接,请求完成后连接会立即关闭,这种方式会导致每次请求都需要建立新的 TCP 连接,增加了连接建立和断开的开销,降低了效率。
长连接的出现则解决了这个问题。当客户端和服务器之间启用长连接后,在一次请求-响应完成后,连接并不会立即关闭,而是保持打开状态一段时间(由服务器或客户端设置的超时时间决定),在这段时间内可以通过同一连接发送多个请求和接收多个响应。这种方式可以节省连接的建立和断开开销,提高了性能和效率。
长连接通常与 HTTP/1.1 中的持久连接(Persistent Connection)机制相关联,HTTP/1.1 默认支持长连接。在 HTTP/1.1 中,如果未指定 Connection 头部为 close,则默认为长连接,保持连接打开状态。
长连接的使用有助于减少网络延迟和提高性能,特别是在需要发送多个请求或者请求频繁的情况下。