Keep-Alive: 300
Proxy-Connection: keep-alive
正如我们所知,当请求得到响应时,HTTP 连接已关闭,那么这是什么意思keep-alive
,有人可以详细说明一下吗?
Keep-Alive: 300
Proxy-Connection: keep-alive
正如我们所知,当请求得到响应时,HTTP 连接已关闭,那么这是什么意思keep-alive
,有人可以详细说明一下吗?
这意味着可以保持连接打开以请求更多资源,例如图像和样式表。
正如我们所知,当请求得到响应时,HTTP 连接已关闭
什么是 HTTP 连接?实际上,它是一个实现 HTTP 的套接字连接。只有在 HTTP1.0 中,每次响应后连接才会关闭。为了节省建立 TCP/IP 连接的成本,HTTP1.1 规定除非客户端发送标头
Connection:close
或者服务器返回相同的标头,则套接字保持打开状态。您可以根据需要向此套接字提供任意数量的请求,并且响应将按照请求的顺序返回。这要求响应使用分块传输编码发送或包含内容长度标头,以便可以检测/计算每个响应的结尾。
标proxy-connection
头再次不同,仅与客户端和代理服务器之间的对话有关。
我推荐这个页面作为协议的优秀指南。
这个问题已经得到回答和接受,但我想详细解释一下:
Keep-alive 不能永远保持一个连接;服务器中运行的应用程序确定保持连接活动的限制,在大多数情况下,您可以配置此限制。
在 HTTP/1.1 中,默认使用 Keep-alive。如果客户端有其他请求,他们将为它们使用相同的连接。
无状态一词并不意味着服务器没有能力保持连接。它只是意味着服务器无法识别任何两个请求之间的任何关系。
该协议确实是无状态的,但 keep-alive 表示客户端和服务器之间的连接应该保持打开状态。
打开 TCP 连接是一个相对重量级的操作,保持该连接打开可以避免与打开新连接相关的设置和拆卸成本。
Keep-alive
与状态无关。
在网络中,最昂贵的操作之一是重复打开和关闭连接。然而,现代 HTML 页面在技术上要求您准确地做到这一点:首先,获取页面,然后获取每个资源并重复,直到您拥有所有内容。由于这会非常慢,HTTP/1.1 允许代理保持连接活动,直到他从服务器获得他想要的一切。
Keep-alive
基本上是网络浏览器告诉服务器不要挂断。