in Night builds Firefox, as well as in beta Enabled by default Support for HTTP / 3 protocol. In a stable branch, the inclusion of HTTP / 3 is scheduled for Firefox 88, scheduled for April 20. In Chrome, the selective activation of HTTP / 3 began in October 2020.
http / 3 support in Firefox is based on a developed company Mozilla project Neqo providing customer sales and server for QUIC protocol. Component code to support HTTP / 3 and QUIC is written in RUST.
To control the inclusion of HTTP / 3 in About: Config, the option “Network.http.http3.Enabled” is provided. From the client software, HTTP / 3 support is also added to Chrome and CURL, and for servers is available in NGINX, as well as in the nginx module and Test server from CloudFlare company . To check the work of HTTP / 3 customers running Several test sites.
http / 3 protocol is still at the black specification and finally not standardized in IETF . HTTP / 3 determines the use of the QUIC protocol as a transport for HTTP / 2. Protocol Quic (Quick UDP Internet Connections) C 2013 has been developing by Google as an alternative to TCP + TLS bond for WEB, solving problems with Large time of installation and coordination of connections in TCP and eliminating the delay in loss of packets during data transfer. QUIC is an add-in over UDP protocol that supports multiplexing multiple connections and providing encryption methods equivalent to TLS / SSL. In the process of developing in IETF standard, changes were made to the protocol, which led to the emergence of two parallel branches, one for HTTP / 3, and the second supported Google (Chrome supports both options).
Basic Features Quic:
- High security similar to TLS (essentially QUIC provides the ability to use TLS over UDP);
- Monitoring the integrity of the stream preventing packet loss;
- Ability to instantly establish a connection (0-Rtt, about 75% of cases, data can be transmitted immediately after sending the connection installation package) and provide minimal delays between sending a request and receiving an answer (RTT, Round TRIP TIME);
- Do not use when re-transmitting a package of the same sequence number, which allows you to avoid ambiguity when determining the packages received and get rid of the timaouts;