HTTP/3 (QUIC) Support
HTTP/3, once known as “HTTP over QUIC,” is the next big version of the Hypertext Transfer Protocol family. It’s a lot like HTTP/2 in what it can do, but it has some cool advantages because it’s built on a different method. Specifically, HTTP/3 uses the QUIC transport protocol, which runs on UDP instead of TCP. Also, some benefits come with these changes.
Right now, a few solutions like LiteSpeed and NGINX are already offering HTTP/3, and it’s getting integrated into the platform through the newest updates of these stacks:
- Load balancers: LiteSpeed Web ADC, Varnish, NGINX
- Application Servers: LiteSpeed WS, LLSMP & LEMP, NGINX PHP, NGINX Ruby
Take a Look at the Following:
- Technical preconditions of the HTTP/3 implementation>
- Benefits of the HTTP/3 (QUIC)
- Integration in the platform
1. Technical Implementation Specifics/Preconditions
HTTP/3 came about because HTTP/2 had maxed out on its speed enhancements, largely because of TCP’s bottleneck. TCP, while dependable, has its flaws with all the back-and-forth handshakes, delivery confirmations, ensuring order, and checksums. Given that TCP is baked into the very core of operating systems and device firmware as part of the TCP/IP stack, it’s incredibly challenging to tweak it significantly.
- When it comes to transferring data, a single TCP connection can handle multiple streams. However, if there’s any packet loss, it puts the entire connection on hold, including all its streams, until TCP retransmits the lost packet.
- Additionally, TCP lacks built-in TLS, meaning secure connections need an extra round-trip, leading to delays.
UDP doesn’t face those constraints and is as widely used as TCP. It shows that we can enhance things without having to restart from the beginning with our current operating systems and device firmware. That is why HTTP/3 has embraced the Google-developed QUIC transport protocol, which is based on UDP and offers substantial improvements. Plus, with big players like Google and Facebook already on board, the effectiveness and dependability of QUIC are undeniable.
2. HTTP/3 (QUIC) Key Features
Switching from TCP to QUIC as its foundation, HTTP/3 can tap into a range of advantages. With QUIC layered over UDP, it can offer functionalities akin to TCP while bypassing certain bottlenecks. Now, let’s highlight the key standout traits of HTTP/3 in comparison to its forerunner, HTTP/2:
- Enhanced multiplexing – When data packets go missing, it only impacts the specific stream they belong to, rather than causing issues for all streams within the same connection.
- Faster connection setup – The protocol manages its own security features, which reduces the need for multiple back-and-forth exchanges to establish a connection. This could come in really handy on networks where delays are pretty common, similar to what mobile users often face.
- Connection migration – Using a connection ID rather than relying solely on the destination IP ensures that packets can still reach their destination even if there’s a switch in the network. For instance, if you’re downloading something over HTTP/3 and switching from a Wi-Fi connection to a mobile network, the download will continue seamlessly.
HTTP/3 is geared towards enhancing connection speed and reliability, particularly for folks using networks with longer latency. This means mobile users will likely feel the biggest boost in performance, but the perks are something everyone can enjoy.
3. HTTP/3 Support Implementation
The HTTP/3 (QUIC) protocol is currently in its initial stages of implementation. Some solutions like LiteSpeed already offer support for it, while others are actively working on integrating it.
Check out the list below for the most up-to-date software stacks on the platform that come with native HTTP/3 support.
Load balancers
- LiteSpeed Web ADC: all versions
- Varnish: 5.2.x, 6.x.x versions and above
- NGINX: since the 1.16.1 release
Application Servers
- LiteSpeed WS: all versions
- LLSMP: all versions
- LEMP: since the 1.16.1 release
- NGINX PHP: since the 1.16.1 release for PHP 7.2.26, 7.3.13, 7.4.1 versions and above
- NGINX Ruby: since the 1.16.1 release for Ruby 2.4.9, 2.5.7, 2.6.5, 2.7.0 versions and above
Simply create an environment topology that encompasses one or more of the application servers or load balancers noted earlier.