和 Pipelining 说再见,cURL 放弃使用管道技术

局长
 局长
发布于 2019年04月08日
收藏 14

近日,cURL 作者 Daniel Stenberg 在其博客发布公告表示从这个发布到 cURL 7.65.0 的提交开始,cURL 将删除全部支持 HTTP/1.1 Pipelining 技术的代码。事实上,早在 7.62.0 版本中,该特性就已在代码中被禁用,因此保持使用最新版本应用的开发者应该不会注意到差异。

Daniel 表示,cURL 在支持 HTTP/1.1 Pipelining 的很长一段时间内,由于一系列已知的错误和缺乏足够的测试,其实这是一个脆弱的功能。此外,由于对时间非常敏感,对 pipelining 的调试相当棘手,经常需要启用调试输出或类似功能会完全改变性质的行为,影响十分大。

默认情况下,大型桌面浏览器从未启用 HTTP pipelining,因为它存在很多问题,例如服务器实现中断等。而且很长一段时间以来,Firefox 和 Chrome 都完全放弃了对管道技术的支持。随着时间的推移,cURL 在对管道方面技术的支持变得越来越孤独。

也正是 HTTP pipelining 的糟糕现状,这成了 HTTP/2 及其多路复用功能背后的主要驱动因素。HTTP/2 多路复用是真正的“pipelining done right”。与 HTTP/1.1 Pipelining 相比,它更加稳定和实用,并能以更好的方式解决用例,具有更好的性能和更少的缺点和问题。(自 7.62.0 起,cURL 默认启用多路复用

所以 Daniel 认为,在 2019 年更应放弃管道技术,转而使用 HTTP/2 来替代它。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:和 Pipelining 说再见,cURL 放弃使用管道技术
加载中

精彩评论

clouddyy
clouddyy
支持!

最新评论(7

开源中国首席98K
开源中国首席98K

引用来自“开源中国首席罗纳尔多”的评论

您好,请问什么是管道技术?VPN吗?还是和JAVA的IO流的管道一致?

引用来自“开源中国首席98K”的评论

VPN是隧道。JAVA的IO流只是对输入输出的抽象。

http pipeline:

带流水线(with pipelining):HTTP客户没碰到一个引用就立即发送一个请求,即HTTP客户可以一个接一个挨着发送各个引用对象的请求。服务器收到这些请求后,也可以一个接一个的发送各个对象的响应。

           带流水线,所有引用到的对象一共只经历1个RTT的延时,而不带流水线,每个引用到的对象各有1个RTT的延迟。

           带流水线的持久连接中服务器空等请求的时间较少。

引用来自“开源中国首席罗纳尔多”的评论

您好,请问这是多路复用的意思吗?
减少握手开销
开源中国首席罗纳尔多
开源中国首席罗纳尔多

引用来自“开源中国首席罗纳尔多”的评论

您好,请问什么是管道技术?VPN吗?还是和JAVA的IO流的管道一致?

引用来自“开源中国首席98K”的评论

VPN是隧道。JAVA的IO流只是对输入输出的抽象。

http pipeline:

带流水线(with pipelining):HTTP客户没碰到一个引用就立即发送一个请求,即HTTP客户可以一个接一个挨着发送各个引用对象的请求。服务器收到这些请求后,也可以一个接一个的发送各个对象的响应。

           带流水线,所有引用到的对象一共只经历1个RTT的延时,而不带流水线,每个引用到的对象各有1个RTT的延迟。

           带流水线的持久连接中服务器空等请求的时间较少。
您好,请问这是多路复用的意思吗?
开源中国首席98K
开源中国首席98K

引用来自“开源中国首席罗纳尔多”的评论

您好,请问什么是管道技术?VPN吗?还是和JAVA的IO流的管道一致?
VPN是隧道。JAVA的IO流只是对输入输出的抽象。

http pipeline:

带流水线(with pipelining):HTTP客户没碰到一个引用就立即发送一个请求,即HTTP客户可以一个接一个挨着发送各个引用对象的请求。服务器收到这些请求后,也可以一个接一个的发送各个对象的响应。

           带流水线,所有引用到的对象一共只经历1个RTT的延时,而不带流水线,每个引用到的对象各有1个RTT的延迟。

           带流水线的持久连接中服务器空等请求的时间较少。
克莱登大学副校长
克莱登大学副校长
cUrl 为什么这么写,什么原因。 curl不就行了
开源中国首席罗纳尔多
开源中国首席罗纳尔多
您好,请问什么是管道技术?VPN吗?还是和JAVA的IO流的管道一致?
Sakuraovq
Sakuraovq
http2好评
clouddyy
clouddyy
支持!
返回顶部
顶部