There is a new major version of HTTP on the horizon, HTTP Version 3. There is nothing you need to do, as HTTP/3 will sit quite happily alongside older versions 1 and 2 promising better performance. The major technical difference is that HTTP/3 does not use TCP as the network transport layer protocol but instead uses a newer UDP based protocol called QUIC.
QUIC (pronounced “quick”) was developed by Google in 2012 (according to the IETF, QUIC isn’t officially an acronym although some suggest it stands for “Quick UDP Internet Connections)”. The move to QUIC rather than TCP aims to fix a problem of HTTP/2 called ‘head of line blocking’.
Hmmm … OK, I was with you until the term ‘head of line blocking’…. Just what is this problem and why do I care? Well, let’s try and put this in simple terms. The HTTP/2 protocol can download multiple concurrent streams in parallel to improve performance (often referred to as multiplexing). The problem here is that the underlying TCP transport protocol that HTTP/2 uses has no visibility of the higher level HTTP/2 multiplexing mechanism. When packets are lost, the TCP recovery techniques result in all the existing higher level HTTP/2 streams stalling regardless of which actual transaction was impacted by the lost packet.
Put simply, under HTTP/2, a single lost packet can disrupt multiple HTTP streams. A shift to HTTP/3 based on QUIC should see significant performance improvement particularly in the event of packet loss.
The QUIC transport protocol provides native multiplexing where lost packets only effect the streams where the data has been lost. All QUIC streams share the same single QUIC connection. Whilst they share the same connection, each QUIC stream is independent so that in most cases packet loss affecting one stream doesn’t affect any others. This is possible because QUIC packets are encapsulated on top of UDP datagrams.
On the upside, the shift to HTTP/3 will be largely transparent to end users. The major browsers are already supporting HTTP/3, Chrome, Firefox, Safari, even Edge. Server support is slower but likely to follow with Nginx and Cloudflare already stepping up to the plate. So the good news is that HTTP/3 is coming and it should provide a better Internet experience. Even better, and unlike other tech innovations (did anyone mention Ipv6?) there is little you need to do to migrate – the existing infrastructure will automatically upgrade to support HTTP/3.
Just sit back and look busy.