我可以执行类似于在HTTP 2上进行流水线操作吗?

管道传输是HTTP / 1.1中的一项技术,其中,在保持连接状态下一次发送多个请求而无需等待响应。然后,服务器按顺序返回响应,而无需等待发送响应和接收下一个请求之间的往返时间。

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

在不受服务器控制的情况下,在使用HTTP / 2时,我能否实现类似于流水的操作(即一次按顺序接收响应,而响应之间没有延迟)?

这在下载许多大文件时非常有用,没有足够的可用内存来缓冲几个部分完成的响应。

superlinkai 回答:我可以执行类似于在HTTP 2上进行流水线操作吗?

  

在不受服务器控制的情况下,使用HTTP / 2时是否可以实现类似于流水的操作(即一次按顺序接收响应,而没有响应之间的延迟)?

没有,除非服务器协作(例如,可以将服务器配置为按顺序处理请求或类似操作),否则您不能。

作为旁注,尽管HTTP / 1.1中允许请求管道传递,但它始终被认为是一个坏主意,因此,与所有主要实现方式(例如browsers don't do it无关),服务器并不真正支持它等)。 主要问题是error handling和错误的代理服务器。

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

如果对于HTTP / 1.1和HTTP / 2,您可以控制一点服务器端,则更好的解决方案是在单个请求中要求服务器提供所有文件,并让服务器以多部分响应进行回复

本文链接:https://www.f2er.com/3116382.html

大家都在问