Photo by Marc Sendra Martorell on Unsplash

Say Goodbye to Slow Load Times with this HTTP/3 protocol!

How browsers and the major HTTP servers take advantage of this new protocol.

The Monkey Dev
4 min readFeb 24, 2023

--

HTTP over QUIC

HTTP over QUIC (Quick UDP Internet Connection) is a new protocol that combines the HTTP/3 application layer protocol with the QUIC transport layer protocol. It is being developed by the Internet Engineering Task Force (IETF) to improve web performance, security, and reliability.

QUIC is a transport layer protocol that provides a number of advantages over TCP, the protocol traditionally used for HTTP. Unlike TCP, which requires a three-way handshake to establish a connection, QUIC uses a single handshake to establish both encryption and connection. This reduces the connection setup time, which can improve performance.

QUIC also supports multiplexing, allowing multiple streams of data to be sent over a single connection. This reduces the number of round trips required to load a webpage, which can further improve performance.

HTTP/3 is the newest version of the HTTP protocol, which is used for communication between web browsers and servers. HTTP/3 has been designed specifically to work with QUIC, taking advantage of its features to further improve web performance. Like HTTP/2, HTTP/3 supports multiplexing, but it also includes other improvements such as header compression.

How it works

The following schema outlines the main components and flow of HTTP over QUIC:

  1. Client initiates a QUIC connection to the server: The client sends a QUIC handshake packet to the server to establish a connection. This includes cryptographic parameters, such as the public keys and algorithms for encryption.
  2. Server responds with a QUIC packet: The server responds with a QUIC packet that includes cryptographic parameters and confirms that the connection has been established.
  3. Client sends an HTTP request over the QUIC connection: The client sends an HTTP request to the server using the established QUIC connection. This request includes the HTTP method (e.g. GET, POST), the requested URL, and any necessary headers.
  4. Server sends an HTTP response over the QUIC connection: The server responds to the client’s HTTP request with an HTTP response, including the requested content and any necessary headers.
  5. Client and server continue exchanging data over the QUIC connection: The client and server can continue to exchange data over the established QUIC connection, using the same connection for multiple requests and responses.
  6. The connection is closed: Either the client or the server can close the connection, which terminates the QUIC session.

Overall, HTTP over QUIC provides a faster, more reliable, and more secure web experience by combining the speed and reliability of the QUIC transport layer protocol with the advanced features of the HTTP/3 application layer protocol.

QUIC Protocol and Google Chrome

One example of HTTP over QUIC in action is the use of the QUIC protocol in Google’s Chrome browser. Chrome uses QUIC to speed up the loading of webpages and improve the user experience. When a user visits a website, Chrome establishes a QUIC connection with the server if it supports the protocol.

Once the QUIC connection is established, HTTP/3 is used to send and receive data between the browser and the server. This includes requests for web pages, as well as the responses containing the web page content.

The use of QUIC and HTTP/3 can result in faster web page load times, particularly for mobile users and those with slow or unreliable internet connections. The reduced connection setup time and built-in congestion control of QUIC can help to prevent delays and improve reliability, while the improvements in multiplexing and header compression of HTTP/3 can further speed up page loads.

Other web browsers and servers are also starting to adopt HTTP over QUIC, so we can expect to see more and more examples of its use in the near future.

HTTP servers that support QUIC

Several HTTP servers currently support QUIC, including:

  1. NGINX — NGINX has added experimental support for QUIC in version 1.19.0, which was released in June 2020. The support is based on the Google QUIC library, and it’s not enabled by default.
  2. Caddy — Caddy is an open-source HTTP server that supports HTTP/2, HTTPS, and QUIC. It provides a simple and easy-to-use interface for configuring and managing server settings.
  3. Apache — Apache is one of the most widely used web servers in the world, and it has recently added experimental support for QUIC in version 2.4.48, which was released in June 2021. The support is based on the mod_http3 module, and it’s not enabled by default.
  4. LiteSpeed — LiteSpeed is a high-performance web server that supports HTTP/2, HTTP/3, and QUIC. It provides advanced caching and optimization features that can help to further improve web performance.

Other web servers are also starting to add support for QUIC, so we can expect to see more options available in the near future.

Thank you for your time! 😄

Feel free to 👏 , share and follow! 🙏

--

--