About

What is HTTP/3 Check?

HTTP/3 Check is a hosted QUIC protocol exploration tool used to test whether a server supports the QUIC transport protocol and the HTTP/3 semantics.

HTTP/3 Check can query given endpoints for support of both IETF QUIC (HTTP/3) and gQUIC protocols.


What happens when I search a web site?

Following input validation and DNS resolution (if necessary) of the hostname, an HTTP GET request is made over TCP to get HTTP response headers from the server. If alternate services are advertised via the "Alt-Svc" header, HTTP/3 check uses the header’s value to learn whether HTTP/3 or Google QUIC are supported.

Next, an HTTP/3 (or a Google QUIC, depending on the list of supported versions) request is made to the website. If a connection is established and the request is successful, the website supports HTTP/3! If the "Alt-Svc" header from the previous step did not specify any QUIC versions, HTTP/3 check will attempt to figure out the server’s supported versions using QUIC version negotiation protocol.

After a successful HTTP/3 connection, an additional connection is made to test if the website supports zero-RTT requests. Following a failed connection or two successful connections, the results are displayed to the user.

What is LSQUIC library?

LSQUIC is an open source library for the HTTP/3 and QUIC protocols. It is maintained by LiteSpeedTech, and is used in all LiteSpeed products that offer HTTP/3 support: LiteSpeed Web Server, LiteSpeed Web ADC, and OpenLiteSpeed.

Learn more about LSQUIC.


What QUIC versions can we validate?

HTTP/3 Check can query given endpoints for support of HTTP/3 — version 1 and a few recent Internet Draft versions — as the older Google QUIC protocol versions Q043, Q046, and Q050.


Protocol Descriptions

What is HTTP/3?

HTTP/3 is a new mapping for HTTP that is specifically designed to be transported using the QUIC protocol. It is similar to the previous iteration, HTTP/2, but with changes to semantics and syntax.

Learn more about HTTP/3 at quicwg.org.


What is QUIC?

QUIC is a new Internet transport protocol. It is designed to advance HTTP with optimizations set to increase performance and improvements in security. There are two types of QUIC: gQUIC and IETF QUIC. The former began as an in-house project at Google and was later released for general consumption. A handful of browsers, Chrome, Brave, and Opera, support the gQUIC protocol by default. IETF QUIC is the standard for the transport protocol; it was engineered by the IETF QUIC Working Group. Widespread support for the IETF QUIC protocol is growing and it is slated to become standard, along with HTTP/3 — meaning they will have official RFCs — in 2021.

LiteSpeed Technologies’ products have supported HTTP/3 since 2019 and Google QUIC since 2017.

Learn more about QUIC at quicwg.org.

Read LiteSpeed's IETF QUIC announcement.


Output Metrics and Information

Zero Round Trip Time Resumption (0-RTT)

The QUIC handshake for this connection was completed without any additional round-trips.

SUCCESS

QUIC Versions

These are the QUIC versions supported by this QUIC endpoint.

AGREED SUPPORTED

Connection ID

This unique identifier for a QUIC connection is used instead of the more usual 5-tuple (protocol, server IP addresses and port numbers) to identify QUIC packets that belong to a particular connection.

HTTP/3 check attempts two connections to test the server's 0-RTT capabilities. During the first connection, the client receives session resumption information from the server. With 0-RTT, the client can start to send data immediately if session resumption on the second connection is successful.


Packet RX

This value represents the time between the first packet sent and the first packet received (measured in milliseconds)


Handshake Done

This value represents the time between when the first packet is sent and when the handshake is completed (measured in milliseconds).

Take notice of the difference in this metric between the first connection and the second connection. Using 0-RTT, future connections (i.e. the second connection) can complete the handshake much faster than the original connection.


QLog

QLog is a standard under development for QUIC Connection debugging and visualization. Learn more at https://quic.edm.uhasselt.be/

To view or download the raw QLog ("application/json"), add "format=qlog" to the HTTP query string.


Questions and Feedback

Join our GoLiteSpeed Slack and share your thoughts with this invitation. Then, navigate to the #http3check channel and engage with us!