What is HTTP/3?
As you might know, HTTP stands for HyperText Transfer Protocol. It is a set of rules and protocols that web browsers use to fetch data (such as text, graphic images, sound, video, and other multimedia files) from web servers. It is the application that runs on top of the TCP/IP layer that made data communication possible for the world-wide-web. Before we go through HTTP/3 deeper, let us take a look at the beginning point of the journey. HTTP has known as the main protocol for the internet since 1996. The other major update came after a long time in 2015. The new HTTP protocol named HTTP3 has inherited the crown from its ancestor and will be the new internet protocol.
HTTP/3 is the next generation of the well-known HTTP protocol family. Therefore, it covers most of the features that we have seen in HTTP/2. However, the way it has been designed offers a faster experience when browsing the web. The reason behind realizing the new protocol is emerging a couple of new technologies that have been developed to replace slow and inefficient ones.
Its model of deployment has made it a very strong and strange thing. On the one hand, from the beginning stages when it is built upon TCP, HTTP/2 has been challenging to update in a way that reduces its intrinsic failures.
On the other hand, HTTP/3 not only has managed to perform seamlessly on TCP, but it is also can show its functionality over UDP. By having a great adoption of UDP, QUIC can repair many of the core issues existed in HTTP/2 while operating under a new implementation methodology.
Why HTTP/2 should be replaced by HTTP/3?
Before we Talk about QUIC and its features, first, we should understand one would want to upgrade HTTP/2. Dou to a long time it had taken before releasing HTTP/2, no one would have thought we witness new updates this much soon. Although developers had tried to put so much effort to fix all bugs in HTTP/1 and propagate forward; There were still some core problems. These core issues are derived from the basics of TCP and how the TCP layer is implemented across networks.
One of the most noticeable problems that many people have complained about is the effect that a low network quality environment has on the creation of the data bottleneck. As Network quality starts to decrease, a single connection damage the whole process. This is exactly where packets are dropping and no additional data can be transferred during this period of retransmission.
Having said that, this problem generally increases the system’s latency and reduces the entire speed. To manage this challenge, QUIC, and thereby HTTP/3, utilizes multiplexing. In other words, if a packet gets lost, the rest of the connection streams can continue to transmit data and the stream attempts to fix itself. As a result, data congestion will not happen regularly and the system is more reliable than before.
Another instinct issue with HTTP/2 is protocol ossification. This issue is more related to middleboxes (routers, firewalls, and other network devices) rather than protocol itself. These devices are responsible to only accept TCP or UDP between contacted servers and their users within a very strict, narrow definition of what expected traffic should look like – any deviation. So, some types of traffic like protocol updates and brand new functions may well just be dropped or delayed. Because the devices might think that these are not the sort of features that the user is waiting for.
What is QUIC? Why would we use it?
Although HTTP/2 has lots of advantages over HTTP/1, the lack of speed and reliability has forced vendors to think to a better solution. To solve the underlying problems such as what we mentioned above and other specific ones; They have decided to base HTTP/3 around QUIC.
QUIC stands for the “Quick UDP Interaction Connections,” which was designed by Google as a way to solve many internal issues with the current protocol. This system tries to present low latency transmission. To solve the ossification problem, designers try to build a secure protocol by showing no clear text version of it. Since everything is routed through TLS 1.3, there is no concern about security problems and ossification. TLS does not allow standard middleboxes to understand and scan the traffic.
Related post: Important Google Tips
Another interesting thing about QUIC is also about its speed. Because of 0-RTT and 1-RTT (Round Trip Time) handshakes, the transfer process of QUIC is faster than the TCP 3-way handshakes. Also, data transmission in QUIC is highly reliable and accurate, due to its support of the aforementioned additional streams.
Overall, there is no doubt that HTTP/3 is a fantastic protocol. Of right now, no one has convinced to use the IETF variant of QUIC. So, the Google version is still in use. However, Google is actively trying to make a change step by step and move towards the IETF standard.
Although going toward the QUIC protocol could change the experience of the users, there are some disadvantages that make the whole replacement process slower. Locking an API or application into a specific protocol with proprietary libraries are some examples of these drawbacks.