Re: i can see myself
"The bottleneck in my experience is in the apps, not in the network or protocols."
My experience differs - but my perspective is that of someone who has been paid money to write REST services. Here's some things where HTTP 2.x is likely to help me write more efficient REST based systems:
1) It's not uncommon for REST services to run out of file-descriptors before they run out of compute & memory. HTTP 2.x will definitely help with this...
2) Where compute power is at a premium you can burn hundreds of thousands of cycles processing the headers alone, which really kicks you in the nuts when you are trying to address thousands of small objects (this is the majority of cases in my experience)... HTTP 2.x's use of a binary format will improve this a little.
3) head-of-line blocking really hurts performance in a lot of REST apps. The classic work-around is to address multiple addressable objects with one request, and then overload the HTTP reponse codes and bodies in weird and wonderful ways - which breaks the REST model. This very day some poor sod was forced to explain why they had decided to return a 200 when their now-non-REST request partially completed... HTTP 2.x's multiplexed connection will bin the head-of-line crap and allow us to spam the server and let it sort out the best order in which to process the requests - rather than slavishly processing them in FIFO order. People reckoned that out-of-order execution was a good thing for processors & hard drives - it's a win for REST services too.
4) header compression. K, you don't give a stuff about network bandwidth because you can throw wider pipes at it as time goes by, but the thing is wider pipes don't automatically reduce latency. Reducing the amount of data you have to transfer & the amount of effort to parse that data *does* reduce latency. Another win for HTTP 2.x.
I won't begrudge you looking at kitty pictures with HTTP/1.x, by the same token it would be nice if the wannabe luddites out there spared a thought for the poor sods (like myself) who are forced to use HTTP in high performance distributed apps. ;)
Anyway, we'll see how HTTP 2x works out, hopefully my lack of cynicism will be rewarded just this once...