What Is HTTP/3?

HTTP/3 is an HTTP protocol that transmits data over the QUIC (Quick UDP Internet Connections) transport protocol, instead of the TCP (Transmission Control Protocol) used by its predecessor, HTTP/2.

QUIC itself is built on UDP (User Datagram Protocol), which essentially makes HTTP/3 a UDP-based protocol. HTTP/3 was standardized in June 2022 and is the latest version of the HTTP protocol

That said, to better understand HTTP/3, we must first understand HTTP and its related terminologies. Thereafter, we will learn about TCP, UDP, and QUIC, and how they contribute to the improvement of HTTP/3 over HTTP/2. 

What Is HTTP?

HTTP (Hypertext Transfer Protocol) is the standard protocol for transferring data over the web. You can think of it as the language that browsers and servers use to communicate with one another. 

When a user wants to access a website, they enter the URL into their address bar. The browser then sends a request to the server, asking that it send the code, images, scripts, and other resources that make up the webpage. The browser sends this request using the HTTP protocol. For example:

GET / HTTP/1.1 
Host: yourdomain.com 
User-Agent: Chrome/Windows 
Accept: text/html 
Accept-Language: en-US

The server then responds to the browser’s request, also using the HTTP protocol. 

HTTP/1.1 200 OK 
Content-Type: text/html; charset=UTF-8 
Content-Length: 1256 
Date: Mon, 01 Jan 2025 12:00:00 GMT 
Server: Apache 
Connection: close

The above HTTP request and response are structured using the HTTP/1.1 protocol, which is just one of the multiple HTTP versions created and maintained by the Internet Engineering Task Force (IETF). Other available versions of HTTP include:

  • HTTP/0.9 (released in 1991) 
  • HTTP/1.0 (released in 1996)
  • HTTP/1.1 (released in 1997 and is the first major HTTP version)
  • HTTP/2 (released in 2015 and is the second major HTTP version)
  • HTTP/3 (released in 2022 and is the third major HTTP version)

Common HTTP Terminologies

Now that we understand HTTP, we should also be familiar with some HTTP terminologies, such as data packet, latency, and transport protocol.

1 Data Packet

A data packet is a small unit of data transmitted over a network. It contains both the payload, which is the actual data being sent, and control information, such as source, destination, and sequencing details, which ensure the data is delivered and properly reassembled at the destination. 

2 Latency

Latency is the time it takes for data to travel from one system to another. For example, the time it takes for a request to travel from a browser to a server.

Latency can be low or high. A low latency means the data is transmitted quickly and with minimal delay, which results in faster and more responsive communication. On the other hand, a high latency means there is a delay in the transmission.

3 Transport Protocol

A transport protocol is a set of rules that manage how data is transmitted across the different systems on a network. TCP, UDP, and QUIC are different types of transport protocols.  

TCP, UDP, and QUIC

TCP, UDP, and QUIC are transport protocols used in HTTP.  Specifically, HTTP/0.9, HTTP/1.0, HTTP/1.1, and HTTP/2 utilize TCP, while HTTP/3 employs QUIC, which is itself built on UDP.

1 TCP (Transmission Control Protocol)

TCP (Transmission Control Protocol) is a connection-based transport protocol that ensures data packets are delivered without loss or duplication, and in the order they were sent.

TCP works by breaking data into smaller chunks called segments. It also incorporates error-checking mechanisms and acknowledgments that ensure each segment is delivered to its intended destination. The receiver then reassembles the segments in the correct order to reconstruct the original message.

Este method of sending and managing data makes TCP a reliable and accurate protocol. However, it also means that TCP is strict with handling data. For instance, when packets are lost during transmission, the packets that arrive afterward will be held in the receiver’s buffer until the missing packet is retransmitted and received.

This delay is referred to as head-of-line (HOL) blocking at the TCP level. It leads to high latency, which slows down the page load speed and can negatively impact the user experience for visitors viewing the webpage.

2 UDP (User Datagram Protocol)

UDP (User Datagram Protocol) is a connectionless transport protocol used to quickly send data packets between devices over a network. 

Unlike TCP, UDP does not establish a connection, check for errors, or ensure that packets are delivered in order or without duplication. This makes UDP fast. However, it also makes it unreliable as UDP does not guarantee delivery, ordering, or protection against duplicate packets.

3 QUIC (Quick UDP Internet Connections)

QUIC (Quick UDP Internet Connections) is a transport protocol designed to combine the benefits of UDP and TCP. It is based on UDP but adds the reliability features of TCP. So, QUIC ensures that data packets are delivered fast, accurately, in order, and without duplication.

QUIC was developed by Google and was specifically created to reduce latency and improve connection speeds. It combines built-in encryption, faster handshakes, and better loss recovery to make web browsing smoother, especially on unstable networks.

How QUIC Improves upon TCP

TCP is a connection-based transport protocol that ensures data packets are delivered without loss or duplication, and in the order they were sent. This ensures data is sent reliably. However, it also comes with some issues. 

For one, TCP suffers from head-of-line blocking at the transport (TCP) level. This issue occurs when a data packet is lost. In such a case, the entire TCP connection comes to a standstill, as the missing data must be retransmitted before the connection can continue. 

QUIC resolves this issue by allowing multiple independent streams within a single connection. This means packet loss in one stream does not block others, and other streams can continue transmitting data, while the missing data is being retransmitted.

This effectively prevents a single lost packet from bringing the entire connection to a standstill, as can happen with TCP.

TCP also includes multiple setup and error-checking systems that make it a reliable protocol. However, those systems are not optimized for latency-sensitive applications. This means TCP can be slow in situations that require real-time responsiveness.

QUIC resolves this by combining multiple systems together. For example, QUIC combines transport layer security (TLS) encryption and handshakes into a single step. This makes it faster than TCP, which maintains them as separate steps. 

What Is HTTP/2?

HTTP/2 is a significant revision to the HTTP protocol. It uses TCP (just like the other HTTP versions that came before it) and was standardized in May 2015. It also introduced new features like multiplexing, header compression, and server push. 

Multiplexing allows HTTP/2 to send multiple requests and responses simultaneously over a single connection. Meanwhile, header compression enables it to reduce the size of HTTP headers, while server push allows developers to send resources to the browser before it requests them.

These features make HTTP/2 an improvement over HTTP/1.1 (the HTTP version preceding it). Multiplexing specifically allowed HTTP/2 to resolve the head-of-line blocking at the HTTP level, which is also common with HTTP/1.1.

However, HTTP/2 remains vulnerable to head-of-line blocking at the TCP level, which makes it undesirable in certain situations. HTTP/3 solved the head-of-line blocking at the TCP level by replacing TCP with QUIC. 

How HTTP/3 Improves upon HTTP/2

The switch from TCP to QUIC is HTTP/3’s major improvement over HTTP/2. This switch enables HTTP/3 to eliminate head-of-line blocking at the TCP level, which is a major drawback of HTTP/2. 

The loss of a packet can bring an HTTP/2 connection to a standstill because all streams share a single TCP connection. However, this does not happen in HTTP/3 since it runs on QUIC, which supports independent streams. Instead, other streams can continue transmitting while only the affected stream handles retransmission.

HTTP/3 itself retains many of HTTP/2’s features, such as multiplexing. However, it also introduces improvements over HTTP/2. For instance, HTTP/3 leads to faster page load times as it combines transport layer security (TLS) encryption and handshakes into a single step. 

HTTP/3 also ensures a smoother connection when switching between networks, such as when transitioning from Wi-Fi to mobile data. This is because HTTP/3 is not tied to a specific IP and port. So, it does not need to reconnect when a user switches from Wi-Fi to mobile data. On the other hand, HTTP/2 requires a reconnection to continue. 

HTTP/3 also comes with built-in encryption. This ensures the connection is always encrypted and runs on HTTPS. HTTP/2, on the other hand, does not come with encryption, and most browsers will typically fall back to HTTP/1.1 if the systems involved in the transmission are not encrypted. 

🇪🇸 Español