近日,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 来替代它。
【编辑推荐】
- 浅谈Web 实时推送技术,有对比,有总结
- 给手机配上AI技术 拍出的照片真能比肩单反?
- 中国移动研究院常耀斌:作为AI时代的技术管理者,何为作战能力?
- 作为面试官的一点点感悟,谈谈技术人的成长之路
- 被京东和腾讯赶走的中年白领,不会有人同情_技术栈微信半月刊第38期
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0