HTTP管道和使用SPDY进行HTTP多路复用之间的区别

时间:2012-05-07 10:01:43

标签: http spdy multiplexing http-pipelining

感谢Google和Stack Overflow,我想我理解常规HTTP流水线和HTTP多路复用之间的区别(例如,使用SPDY),因此我在下面的图表中显示了基于三个常规HTTP请求的流水线和多路复用之间的差异

enter image description here

我的两个问题是:

  1. 图像是否正确?
  2. 如果流水线没有head-of-line blocking problem它会像HTTP多路复用一样快吗?或者我是否错过了额外的差异?

1 个答案:

答案 0 :(得分:48)

这不是不正确的,但它忽略了一个重要的方面。 HTTP要求您在任何其他请求可以继续之前提供整个响应。您在图表中显示的内容是正确的,因为使用SPDY,我们最终可以打破“行首”要求并在响应可用时提供响应。但是,我们也不必等待任何请求完全完成。

想象一下两个请求,大小为几个kb:每个请求都有多个数据包,称之为[r1p1, r1p2][r2p1, r2p2]。 HTTP要求pN以准确的顺序到达。另一方面,SPDY允许我们进行以下操作:[r2p1, r1p1, r1p2, r2p2]

值得一提的是,使用SPDY,我们可以使用请求优先级来提示服务器哪些请求应该优先,即使它稍后到达线路(其中包括其他六个很棒的功能)。