首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTP/1.1流水线和HTTP/2多路复用有什么不同?

HTTP/1.1流水线和HTTP/2多路复用有什么不同?
EN

Stack Overflow用户
提问于 2015-12-27 16:55:42
回答 3查看 13K关注 0票数 32

是不是因为它要求响应按照请求的顺序发送给客户端,导致了HTTP1.1中的行头阻塞问题?

如果每个请求花费的时间完全相等,那么就不会有行头阻塞和HTTP 1.1流水线,并且会执行与HTTP/2多路复用相同的性能吗?

(假设在HTTP/2请求中没有请求优先级,并忽略HTTP/2的其他更改,如报头压缩、二进制等。)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-27 17:10:15

HTTP/1.1流水线仍然要求按照请求的顺序完整地返回请求。

HTTP/2允许请求响应被分成块,并以混合的方式返回,从而避免了行头阻塞。

此外,HTTP/1.1流水线从未真正起飞,浏览器和服务器的支持也是有限的(参见:https://en.m.wikipedia.org/wiki/HTTP_pipelining)。

但是,是的,在理论上,它们是相似的,因此提供了类似的性能优势。HTTP/2只是一个更好的、功能更全、更受支持的版本--以及你已经注意到的其他好处。

有关HTTP/2多路复用的更深层次的讨论,请参阅我的回答:What does multiplexing mean in HTTP/2

票数 36
EN

Stack Overflow用户

发布于 2016-04-06 06:07:06

不使用管道的TCP /1.1:在发出下一个请求之前,必须对通过连接的每个HTTP请求进行响应。

使用流水线的TCP /1.1:通过连接的每个HTTP请求都可以立即发出,而无需等待前一个请求的响应返回。响应将以相同的顺序返回。

TCP /2多路复用:每个通过TCP连接的请求都可以立即发出,而无需等待前一个响应返回。响应可能以任何顺序返回。

票数 68
EN

Stack Overflow用户

发布于 2018-10-16 16:54:33

我认为更详细地说,两者都提供了类似的性能改进。

然而,流水线(或双缓冲)会受到有by的代理和有时有by的服务器的阻碍。所以浏览器不再支持它了。

解决方案是使用一种全新的协议HTTP/2。这有一些额外的功能,如无序返回、报头压缩和服务器推送,但尚不清楚它们提供了多大的改进。关键问题是bug。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34478967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档