HTTP/3, new version of the web communication protocol
2020/09/01 Leturia Azkarate, Igor - Informatikaria eta ikertzaileaElhuyar Hizkuntza eta Teknologia Iturria: Elhuyar aldizkaria
The Internet network consists of a physical infrastructure (routers, cables, emitters and receivers of electromagnetic waves...) and different protocols and communication systems (WiFi, TCP, UDP, IP, DNS...). And the services constituted on this network (web, email, SSH, FTP, etc.) also have their own protocols. Well, the web is mainly based on HTML format (format used to write and encode web pages) and HTTP communication protocol.
HTTP stands for HyperText Transfer Protocol, i.e. hypertext transfer protocol. This protocol defines the communication between the web browser and a web server, so the browsers display it at the start of the web addresses “http://” (or “https://” on secure websites). The HTTP protocol establishes how the browser must encode the page request to the server (GET, POST, HEAD, PUT, DELETE or other requests, how parameters and cookies will be sent…) and how the server will respond (a web page encoded in HTML or an error: Error 404 when the address does not exist, 301 when the address has been redirected, 403 when we do not have permission to access the page, 500 when an error occurred on the server, etc. ).
Historical HTTP Protocol
The inventor of the web Sir Tim Berners-Lee created in 1989 the web, the HTTP protocol and the HTML format. W3C or World Wide Web Consortium, created by Berners-Lee himself and currently directing, has guided the evolution of three to recent dates: The HTML format has been managed by the WHATWG group since 2019 and the HTTP protocol is in the hands of the IETF or Internet Engineering Task Force in recent years.
HTTP/2, published in 2015. It was based on the experimental protocol SPDY developed by Google, which we wrote about in 2013. Its novelty and advantages were to use a unique connection for all page requests that are made to a server, that the server can send push notifications to the browser and send compressed headers.
HTTP/3 has a history similar to HTTP/2, since it has behind it an experimental protocol created by Google in 2012, in this case QUIC. The acronym indicates Quick UDP Internet Connections, and as indicated in it, two are the main features or novelties of the HTTP/3: speed and use of the UDP protocol.
In fact, earlier versions of the HTTP used the TCP (Transmission Control Protocol) protocol in the lower transport layer to bring data packets from the browser to the server and vice versa. The main feature of this protocol is that it guarantees the reliability of the data: the data packets are sent in order, they have mechanisms to ensure the integrity of each of them, and after each packet a receipt is expected before sending the next one; if the acknowledgement of receipt is not received, the pack is forwarded. It is therefore reliable, but it is also relatively slow due to the additional data it sends and the need to wait for receiving confirmation messages.
In contrast, QUIC uses the UDP (User Datagram Protocol) protocol in the transport layer. In UDP the sender sends the packs and point, no matter if they have reached the recipient or not and if the packs have been lost on the way have been lost. By not needing periodic confirmation, it is faster. On the web, however, it is important that all data packets arrive well, let's think if fragments of text or images are missing or mistaken on a web. The truth is that when the web was created the network was different from the current one, there were more errors in communications and therefore mechanisms were needed to ensure reliability, but today they are less necessary. In addition, several mechanisms were put in place at the QUIC to request and forward lost parts and avoid those errors.
In 2015 the QUIC protocol was sent to the IETF, proposing its inclusion in the following version of the HTTP protocol standard, and after a series of modifications and improvements, the group accepted it as a proposal for the new standard in 2018: They called HTTP/3.
Although the objective and main achievement of HTTP/3 is the increase in the speed of web communications, it is clear that this is not only a simple technical improvement: since its creation and after relying on the TCP transport protocol for almost 30 years, the HTTP protocol, the base of the web, has gone on to use UDP.
Implementation and dissemination
As its creator, Google has spent years using QUIC for communications between its Chrome browser and some of its services (Gmail, Drive, Youtube...). Chrome itself and other browsers (Firefox, Safari, Edge...) have started implementing HTTP/3 this year, but for now it doesn't come by default, whoever wants to use it or try it has to change the settings manually. But I'm sure everyone will soon use the default HTTP/3.
However, in order to use HTTP/3 it is necessary that it also be placed on the web servers. Given that it improves speed, the main web services and social networks will probably put it soon. On other websites, as usual, you will need more time.
In any case, change will come. In addition, for users it will be unaware that we will only notice that the speed of the web will be improved (or perhaps also because the weight of the websites is increasing). But such improvements are important so that the web does not lose competitiveness and therefore its influence and presence against apps that use other non-standard and hidden protocols.