HTTP/2 – How did we get here
How we get here?  By pushing the previous protocol to the limit, observing where it breaks down, and fixing those things.    We could even predict what will replace HTTP/2 by looking at where it starts to break down.<p>I work with HTTP/2 daily, and there are some pain points when running at high speeds:<p>- Headers are still head of line blocking.  You must synchronize sending them to maintain the HPACK table state.  At a high number of requests per second, this is a bottle neck<p>- Running over TLS is CPU bottleneck since encrypted messages are sequential.  We get around this by making multiple TCP connections.<p>- Long lived HTTP/2 connections will often break because of NAT's (home internet), or changing IP address (mobile).  A single dropped packet kills throughput for highspeed links too.<p>All of these are addressed by the QUIC protocol.  I suspect that eventually HTTP/2 will be last major protocol over TCP because of most of the aforementioned problems come from running over it.