HTTP 1.0规范并没有详细探讨Keep-Alive应该如何工作。基本上,支持Keep-Alive的浏览器会向请求附加一个额外的标头,如下所述:
当服务器处理请求并生成响应时,它还会向响应添加一个标头:
Connection:Keep-Alive 这样做后,套接字连接不会像以前那样关闭,而是在发送响应后保持打开状态。当客户端发送另一个请求时,它将重用相同的连接。连接将继续重用,直到客户端或服务器决定对话已经结束,并且其中一个断开连接。
以上解释来自这里。但我不明白一件事。
当这样做时,套接字连接不会像以前那样被关闭,而是在发送响应后保持打开状态。 我理解我们只是通过发送TCP数据包来进行请求和响应,这个“套接字连接”如何发挥作用并工作呢?我们仍然需要发送数据包,但它又如何建立持久连接呢?这似乎不真实。