HTTP是无状态的,那么保持活动是什么意思


Keep-Alive: 300
Proxy-Connection: keep-alive

众所周知,当请求得到响应时,HTTP连接是关闭的,那么keep-alive是什么意思,有人可以详细说明吗?

这意味着可以保持连接打开以请求更多资源,例如图像和样式表。

众所周知,当请求得到响应时,HTTP连接已关闭

什么是 HTTP 连接?实际上,它是一个实现HTTP的套接字连接。只有在 HTTP1.0 中,连接才会在每次响应后关闭。为了节省设置 TCP/IP 连接的成本,HTTP1.1 指定除非客户端发送标头

Connection:close

或者服务器返回相同的标头,然后套接字保持打开状态。您可以将任意数量的请求输入此套接字,响应将按请求顺序返回。这要求响应要么使用分块传输编码发送,要么包含内容长度标头,以便可以检测/计算每个响应的末尾。

proxy-connection标头再次不同,并且仅与客户端和代理服务器之间的对话相关。

我推荐此页面作为协议的绝佳指南。

HTTP变得非常容易

这个问题已经回答并被接受,但我想详细解释一下:

Keep-alive 不能永远保持一个连接;应用程序 在服务器中运行决定了保持 连接处于活动状态,在大多数情况下,您可以配置此限制。

在 HTTP/1.1 中,默认使用 Keep-alive。如果客户端有其他请求,它们将使用相同的连接。

术语无状态并不意味着服务器没有能力保持 连接。这只是意味着服务器无法识别任何 任意两个请求之间的关系。

该协议确实是无状态的,但保持活动状态表示客户端和服务器之间的连接应保持打开状态。

打开 TCP 连接是一项相对重量级的操作,保持该连接处于打开状态可避免与打开新连接相关的设置和拆卸成本。

Keep-alive

有状态无关。

在网络中,最昂贵的操作之一是反复打开和关闭连接。然而,现代HTML页面在技术上要求你这样做:首先,获取页面,然后获取每个资源并重复,直到你拥有所有内容。由于这会非常慢,HTTP/1.1 允许代理保持连接活动,直到他从服务器获得他想要的一切。

Keep-alive基本上是Web浏览器告诉服务器不要挂断。

最新更新