On Fri, 8 Apr 2016, Daniel Stenberg wrote:
I'd like to open this discussion. If you use HTTP Pipelining in your application I'd be very interested to know how you'd view a future without support for it in libcurl.
So some status first... We have multi-million seats using pipelining for some of our data transport and it does contribute positively to most users' experiences. You can read a brief overview of our motivations and results here: https://community.secondlife.com/t5/Tools-and-Technology/The-Sky-Over-Berlin-and-Elsewhere/ba-p/2844452 We define both endpoints where pipelining is used which limits our exposure to infrastructure problems that general purpose HTTP tools, like browsers, are subject to. But there are still problems, mainly in low-quality wireless endpoint devices and in invasive firewall and anti-virus tools. Despite having 15 years to get this right, some of these have major flaws with full HTTP 1.1 conformance generally and pipelining specifically. In a few cases, we see protocol corruption. The exact cause isn't known but I suspect poor design for concurrency is a major factor. That's why while I'm hopeful for HTTP/2, I also anticipate a great deal of frustration ahead. It enables concurrency 'breadthwise' via multiplexing rather than 'depthwise' in pipelining but to such devices and software, it's still just concurrency. And that will fall into the same design failures that pipelining does now. At present, HTTP/2 is new enough that I'd expect these tools to simply bypass the protocol for now. But as time goes on, they'll update features, start handling the traffic, and then get a demonstration of their problems. As to what I'd like to see... There are quite a few bugs in the pipelining support in libcurl. Carlo Wood had the beginnings of some nice fixes centered around cleanup of the state machine. I'd like to see something like that or maybe simplified pipelining support that parallels what's been done to support HTTP/2 (though I haven't looked at this yet - I'm making assumptions). And I wish I had a diff to offer you tonight... m -- Monty Brandenberg ------------------------------------------------------------------- List admin: https://cool.haxx.se/list/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.html
