HTTP/3 QUIC – What’s in it for performance testers? Couple days ago Cloudflare has announced HTTP/3 and QUIC will be enabled in their edge network. It is definitely a break through from small blogs to enterprise. QAInsights uses Cloudflare from past couple years, I am 100% happy with the tools and service. I have been using their free plan and their support for free customers also terrific. In this blog post, we will get to know about HTTP/3 QUIC from performance testing perspective.
What is HTTP/3?
HTTP/3 is the next iteration of HTTP/2. Before HTTP/2, everyone uses HTTP/1.1 where it has own disadvantages such as head-of-lining blocking, limitations in the number of TCP connections etc. HTTP/2 features: header compression, multiplexing, priority, and streaming management. But HTTP/2 has its own cons: single connection slows down the network; in case of failure of one packet loss, HTTP/3 will solves the issue by multiplexing w/o head-of-line blocking.
The main features of HTTP/3 are:
- Reduced connection established time
- Multiplexing w/o connection establishment time
- Connection migration
- Improved congestion control
The name of HTTP/3 was HTTP-over-QUIC. Now we will see what is QUIC.
What is QUIC?
The abbreviation of QUIC is Quick UDP (User Datagram Protocol) Internet Connection. QUIC is the protocol developed by Google. You can read more about QUIC over here https://www.chromium.org/quic
QUIC is the improved technology of combination of HTTP/2 + TCP + TLS + UDP. TLS is for encryption. This email discussion reveals the HTTP-over-QUIC to be officially renamed to HTTP/3.
HTTP/3 is the evolution of QUIC.
How to enable HTTP/3 in Cloudflare?
Mozilla Firefox and Google Chrome is one of the first browsers to support HTTP/3. Chrome Canary versions are having the HTTP/3 support (yet to available in Firefox nightly build). Cloudflare is one of the first network to support HTTP/3.
Right now, Cloudflare accepting the beta applications to implement HTTP/3 for your website. Login into your Cloudflare, go to the website where you want to enable, click on Network and join the waiting list as shown below.
How to check HTTP/3 enabled or not?
Head to this HTTP/3 checker website https://http3check.net and enter the website that you want to check.
Even though Google is supporting HTTP/3, if you trace the requests in your browser, it will still show HTTP/2. Below screenshot shows the HTTP/2.0 protocol in my Firefox 69.0.1.
Below is the screenshot from Chrome Canary version where it shows HTTP/2+QUIC.
HTTP/3 QUIC – What’s in it for performance testers?
If you are using Micro Focus LoadRunner, in the latest version (12.63 at this time of writing), you could see the runtime settings for HTTP/2.
Similarly for Apache JMeter, you can use HTTP/2 sampler from this repo https://github.com/Blazemeter/jmeter-http2-plugin
If HTTP/3 implemented across all the browsers and the edge network, hopefully all the load test tools needs to add HTTP/3 capabilities in order to measure the performance as in real world.
As a performance tester, you may need to run a baseline run with HTTP/2 and then run HTTP/3 to compare the performance of your application.
Change is inevitable. Before HTTP/3 is ubiquitous, you need to implement the strategy to shift-left your performance testing to reveal more issues before the code reaches production.