我可以做一些类似于HTTP2上的流水线操作吗



Pipelining是HTTP/1.1中的一种技术,在这种技术中,在保持连接的情况下,一次发送多个请求,而无需等待响应。然后,服务器按顺序返回响应,而无需等待发送响应和接收下一个请求之间的往返时间。

HTTP/2添加了一个称为多路复用的功能,类似地,它允许客户端同时发送多个请求。然而,在这种情况下,服务器可以同时发送所有响应。

在不控制服务器的情况下,当使用HTTP/2时,我可以实现类似于流水线的功能吗(即,一次按顺序接收响应,响应之间没有延迟(

当下载许多大文件时,这将非常有用,因为没有太多可用内存来缓冲几个部分完成的响应。

在不控制服务器的情况下,当使用HTTP/2时,我可以实现类似于流水线的功能吗(即,一次按顺序接收一个响应,响应之间没有延迟(?

不可以,除非服务器合作(例如,服务器可以配置为按顺序处理请求或类似的操作(。

顺便说一句,虽然HTTP/1.1中允许请求管道化,但它一直被认为是一个坏主意,因此所有主要实现都与之无关(即浏览器不支持它,服务器也不真正支持它,等等(。主要问题是错误处理和代理服务器的错误。

HTTP/2允许客户端设置请求的优先级,以便按优先级顺序处理请求。但是,此功能是可选的,服务器可能不会实现它,因此您需要再次仔细选择/配置服务器,以获得您想要的行为。

如果您可以对HTTP/1.1和HTTP/2的服务器端进行一点控制,那么更好的解决方案是在一个请求中向服务器询问所有文件,并让服务器用多部分响应进行回复。

最新更新