React, etc. Tech Stack

React, Flux, GraphQL, Hack, HHVM...? All of this and more!

What is HTTP/3?

HTTP/3 will be the next version of the venerable Hypertext Transfer Prototocol that powers the world wide web. Since experiencing slow development from HTTP/1.1 (released in 1999) to the release of HTTP/2 (released in 2015), things are picking up with the release of HTTP/3 due in 2019.

HTTP/3 is an evolution of the QUIC protocol from Google. It is a major departure from the traditional HTTP, even more so than the HTTP/2 release. Instead of building on top of the TCP protocol, HTTP/3 will work on the UDP protocol. This means HTTP/3 will be able to work around the limitation of that protocol.

First of all HTTP/3 will be a combination of SSL and TCP, which helps it cut down on the initial connection time by including the SSL (Secure Sockets Layer) handshake in the TCP setup. In addition it can take advantage of SSL session reuse, which reduces overhead in a key area over HTTP (including HTTP/2) - where multiple substreams are sent over a single connection.

TCP is good, but not perfect for the modern web

TCP is a solid protocol that is optimised for a long lived flow from one location to another with minimal errors. When the protocol was designed this was ideal for applications like FTP and early web applications. However the HTTP protocol is nowadays used in a plethora of applications. Increasingly connections are short living, is sent to multiple recipients (for example with streaming video).

The fact that HTTP will now abandon the venerable TCP layer means that it is open to more lower level experimentation. Support for QUIC is already wide spread in the Google Chrome (and other Chromium based browsers), just like SPDY was. There is QUIC support in the Caddy web server and Lite Speed products.

The process of adopting "HTTP-over-QUIC" as an official HTTP/3 standard is now on the way. While it changes a lot on how users and devices access the web, adoption is expected to be similar to that of HTTP/2: Gradual improvements and adoption,without major backwards breaks for applications or infrastructure.