以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - 前端面试问题
19. `Connection:Keep-Alive`做了些什么?

Connection: Keep-Alive 是 HTTP/1.1 版本中新增的一个头字段,它的作用是告诉服务器在完成响应后仍然保持这个TCP连接,以便之后发送其他请求时可以直接使用这个TCP连接,避免了频繁地进行TCP三次握手和四次挥手,从而提高了HTTP协议的性能。

HTTP/1.1 中的 Keep-Alive 是默认开启的,但在 HTTP/1.0 中需要加上这个头字段才能开启 Keep-Alive 功能。在 HTTP/2 中,由于支持了多路复用(Multiplexing)的特性,无需手动开启 Keep-Alive,因为同一个 TCP 连接在处理多个请求时已经是默认开启的。

值得注意的是,由于 HTTP 的协议特性,在请求完毕后某些前端程序员可能会在 Connection 请求头中添加 Close,告诉服务器关闭该连接。因为客户端和服务器在完成对话后都必须关闭它们的套接字之一,因此这会导致 HTTP 的“短连接”模型。虽然它只是一个经验教训,但由于某些传统的 Web 服务器配置错误,这可能会导致大规模的资源消耗问题。