Instead of using TCP as the transport layer for the session, HTTP/3 uses Quick UDP Internet Connections (QUIC), a new Internet transport protocol, which, among other things, introduces streams as first-class citizens at the transport layer. The QUIC transport protocol has several features like stream multiplexing, per-stream flow control, and low-latency connection establishment.
QUIC is a new transport that reduces latency compared to that of TCP. QUIC over existing TCP+TLS+HTTP2 reduced connection establishment time, improved congestion control. The switch from the TCP to QUIC protocol makes the internet a lot faster. Websites will load more faster than before, and services will get better, and more.
QUIC streams are delivered independently such that in most cases, packet loss affecting one stream doesn’t affect others. This is possible because QUIC packets are encapsulated on top of UDP datagrams. UDP differs from TCP by providing more flexibility. It also enables QUIC implementations to live fully in user-space. Updates to the protocol’s implementations are not tied to operating systems updates.
By combining the typical 3-way TCP handshake with TLS 1.3’s handshake, encryption and authentication are provided by default. The latency incurred before data starts flowing is lower than that of TCP with TLS.
What is HTTP?
HTTP (Hypertext Transfer Protocol) is the set of rules for transferring files, such as text, graphic images, sound, video, and other multimedia files, on the World Wide Web.
Designed in the early 1990s, HTTP is defined as a client-server protocol, which means requests are initiated by the recipient, usually the Web browser. It is used to transfer hypertext documents, images, and videos or to post content to servers. Moreover, HTTP can also be used to fetch parts of documents to update Web pages on demand. It is an application layer protocol that is sent over TCP, or over a TLS-encrypted TCP connection. Both TLS and SSL use an asymmetric public key infrastructure. Both public and private keys are used to encrypt the data.
Components of HTTP-based systems are user-agent, the Web server, and proxies. The user-agent is performed its acting on behalf of the user role by the Web browser. The browser is always the entity initiating the request, by acting as a client and a web-server. A server appears as only a single machine virtually. The server hosts the files, and returns are the response to client requests with the data. Depending on the request, response contains the status of the request.
It has three main goals, including the authentication of the accessed website, protection of the privacy and integrity of the exchanged data while in transit.
History of HTTP
The HTTP protocol used in earlies 1990s later dubbed HTTP/0.9. HTTP/0.9 is extremely simple. HTTP/1.1 was published in early 1997, only a few months after HTTP/1.0, which built extensibility. HTTP/1.1 protocol was revised over two times. The first one RFC 2616 was published in June 1999, and the series of RFC 7230-RFC 7235 was published in June 2014 in the prevision of the release of HTTP/2.
HTTP/2 has been extremely stable over more than 15 years. HTTP/2 had officially standardized in May 2015. It has had much success. By July 2016, 8.7% of all Web sites were already using it, representing more than 68% of all requests.
Now, the next major version of HTTP, HTTP/3, will use QUIC instead of TCP/TLS for the transport layer portion that means lower latency, lower impact when you switch between networks.