HTTP/3 with QUIC protocol

HTTP-over-QUIC to be renamed HTTP/3. HTTP/3 is based on previous RFC draft "Hypertext Transfer Protocol (HTTP) over QUIC". QUIC is an experimental transport layer network protocol initially developed by Google

HTTP Background

HTTP is a stateless protocol. Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, where hypertext documents include hyperlinks to other resources that the user can easily access, for example by a mouse click or by tapping the screen. HTTP was developed to facilitate hypertext and the World Wide Web.

HTTP developed by Tim Berners-Lee and his team between 1989-1991, HTTP has seen many changes, keeping most of the simplicity and further shaping its flexibility. HTTP has evolved from an early protocol to exchange files in a semi-trusted laboratory environment, to the modern maze of the Internet, now carrying images, videos in high resolution and 3D.

What is HTTP/3

There is a big gap in development from HTTP/1.1 (released in 1999) to the release of HTTP/2 (released in 2015), things are hitting up with the release of HTTP/3 due in 2019. HTTP/3 will be the next version of the venerable Hypertext Transfer Prototocol that powers the world wide web. HTTP/3 is an evolution of the QUIC protocol from Google. It is a major departure from the traditional HTTP.

HTTP/3 is the to-become next generation of the HTTP protocol family. This version is similar to HTTP/2 in features, and is most different than its predecessor primarily by the fact that HTTP/3 will only be done over QUIC. QUIC is a transfer protocol implemented on top of UDP.

While UDP is not a reliable transport, QUIC adds a layer on top of UDP that introduces reliability. It offers re-transmissions of packets, congestion control, pacing and the other features otherwise present in TCP. Data sent over QUIC from one end-point will appear in the other end sooner or later, as long as the connection is maintained.

QUIC is a new reliable transport protocol that could be viewed as a sort of next generation TCP.

A QUIC connection is made to a UDP port and IP address, but once established the connection is associated by its "connection ID" (Each connection possesses a set of connection identifiers, or connection IDs, each of which can be used to identify the connection).

QUIC offers both 0-RTT and 1-RTT connection setups, meaning that at best QUIC needs no extra round-trips at all when setting up a new connection. The faster of those two, the 0-RTT handshake, only works if there has been a previous connection established to a host and a secret from that connection has been cached.

Non-HTTP over HTTP/3

The work on sending protocols other than HTTP over HTTP/3 has been postponed until after QUIC version 1 has shipped.

A QUIC connection is a single conversation between two QUIC endpoints. HTTP/3's connection establishment combines version negotiation with the cryptographic and transport handshakes to reduce connection establishment latency. To actually send data over such a connection, one or more streams have to be created and used.

Stream multiplexing has a significant effect on application performance if resources allocated to streams are correctly prioritized.

HTTP/3 will be performed using HTTPS:// URLs. HTTP:// URLs will be left as-is and as we proceed further into a future with more secure transfers they will probably become less and less frequently used. Requests to such URLs will simply not be upgraded to use HTTP/3.

For HTTP3 details, download this book.