HTTP管线化和使用SPDY的HTTP多路复用之间的区别

54
感谢Google和Stack Overflow的帮助,我认为我已经理解了常规HTTP流水线和HTTP多路复用(例如使用SPDY)之间的区别,因此我制作了下面的图表,以展示基于三个常规HTTP请求的流水线和多路复用之间的差异。

enter image description here

我的两个问题是:

  1. 这张图片正确吗?
  2. 如果流水线处理没有头阻塞问题,它是否像HTTP多路复用一样快?或者我错过了其他的区别?
1个回答

51

这并不是错误的,但它省略了一个重要的方面。HTTP要求在任何其他请求继续之前,必须传递整个响应。从图中显示的意义上来说,使用SPDY我们最终可以打破“先来先服务”(head of line)的要求,并在响应可用时立即传递响应。然而,我们也不必等待任何请求完全完成。

想象一下两个请求,都有几千字节大小:每个请求将有多个数据包,称为[r1p1,r1p2][r2p1,r2p2]。HTTP要求pN以确切的顺序到达。另一方面,SPDY允许我们采用以下方式:[r2p1,r1p1,r1p2,r2p2]

值得一提的是,使用SPDY,我们可以使用请求优先级提示服务器应该优先处理哪些请求,即使它晚些到达电线(还有其他半打特色)。


@Matt,你点赞了这个答案,是因为这个问题包含了一个很棒的图表吗?或者可能你只是错误地附加了你的评论... - Evgeniy Berezovsky
1
第二个问题呢?> 如果流水线处理没有头阻塞问题,它是否与HTTP多路复用一样快?还是我错过了其他的区别? - CMCDragonkai
HTTP分块传输模式怎么样? - Ricky Jiao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接