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

qua*_*lle 52 http multiplexing spdy http-pipelining

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

在此输入图像描述

我的两个问题是:

  1. 图像是否正确?
  2. 如果流水线操作不会出现行头阻塞问题,它会像HTTP多路复用一样快吗?或者我是否错过了额外的差异?

igr*_*rik 49

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

想象一下,两个请求,无论是在大小数KB的:每个请求将有多个数据包,叫他们[r1p1, r1p2][r2p1, r2p2].HTTP要求pN以准确的顺序到达.另一方面,SPDY允许我们进行以下操作:[r2p1, r1p1, r1p2, r2p2].

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