2012-05-07 19 views
49

感谢Google和堆栈溢出,我想我理解了常规HTTP流水线和HTTP多路复用(例如SPDY)之间的区别,所以我在下面的图表中显示了流水线和基于三个常规HTTP请求的多路复用。HTTP pipeling和HTTP多路复用与SPDY之间的差异

enter image description here

我的两个问题是:

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

回答

47

这不是不正确的,但它有一个重要方面,它省略了。 HTTP要求您在可以继续执行任何其他请求之前交付整个响应。您在图表中显示的内容是正确的,因为使用SPDY我们可以最终打破“线头”要求并在可用时提供响应。但是,我们也不必等待任何请求完全完成。假设两个请求,几个kb的大小:每个请求将有多个数据包,称它们为[r1p1, r1p2][r2p1, r2p2]。 HTTP要求pN按正确的顺序到达。 SPDY,另一方面允许我们以下:[r2p1, r1p1, r1p2, r2p2]

还值得一提的是,使用SPDY,我们可以使用请求优先级向服务器提示哪些请求应该优先,即使它稍后到达网络(其中有六个其他优秀功能)。

+0

@Matt你+ 1ed *答案*,因为*问题*包含一个很棒的图表?或者,也许你只是附加了你的评论错误... –

+0

是的,附上了不正确的评论。 – Matt

+1

第二个问题呢? >是否真的如果流水线不会遇到线头阻塞问题,它会像HTTP多路复用一样快?还是我错过了一个额外的差异? – CMCDragonkai

相关问题