HTTP /1/2/3 QUIC Flashcards
(6 cards)
What is HTTP/1?
HTTP/1.1, which has been in use since 1997, was designed for a simpler web era, where web pages were primarily composed of HTML documents with minimal multimedia content. However, modern websites are far more complex, often incorporating various resources, such as style sheets, scripts,
images, and other multimedia elements.
HTTP/1.1 has several limitations that can impact performance, particularly in scenarios where multiple resources must be fetched from the same server. These limitations include, inefficient multiplexing due to head of line blocking.
Multiplexing allows for multiple connections to be established between a client and a server. But in HTTP/1.1, resources are fetched sequentially, meaning that if one resource is taking a long time to load, subsequent resources must wait their turn, leading to delays in page rendering.
There is also a lack of header compression. HTTP headers contain metadata about the communication. In HTTP/1.1, these headers are sent uncompressed, leading to increased overhead and slower page load times.
What is HTTP/2?
The introduction of HTTP/2 in 2015, a major revision of the hypertext transfer protocol. HTTP/2 was developed by the Internet Engineering Task Forces HTTP working group.
It improved the HTTP/1.1
HTTP/2 addresses these limitations, and introduces several new features and improvements, to enhance the overall web experience.
Here are some key features of HTTP/2. The first is binary protocol. Unlike HTTP/1.1, it uses binary framing rather than textual. This binary format makes it more efficient to parse,
less error prone and easier to extend.
Second is multiplexing. Multiple requests are allowed over the same connection simultaneously, effectively ending the problem of head of line blocking, seen in HTTP/1.1, where a single slow request could block others behind it.
The third is server push. This feature allows a server to send resources proactively.
That is, it can push responses to the client ahead of the actual request. This anticipates the needs of an application, reducing waiting times for subsequent requests.
Fourth is header compression. Since headers often contain a significant amount of redundancy, compressing them can improve performance.
The fifth and last, is stream prioritization. Clients can prioritize requests, letting the server know which resources they need first. This helps in optimizing
the overall utilization of the available bandwidth.
What are the benefits of HTTP/2?
There is reduced latency. By allowing multiplexing and using header compression, HTTP/2 significantly cuts down the time it takes to load web pages compared to HTTP/1.1.
There’s also improved connection use. A single transmission control protocol or TCP connection, can be fully utilized, which reduces the overhead of using multiple TCP connections.
HTTP/2 also offers enhanced security through encryption. Although it does not inherently require HTTPS, most browsers have made HTTPS a prerequisite for using HTTP/2, indirectly promoting better security practices.
Lastly, is lower resource consumption. HTTP/2’s server push reduces the need for multiple requests between the server and the client, thereby decreasing the load on server resources and improving response times.
What is HTTP/3?
HTTP/3, Google’s latest version of the protocol, addresses these limitations by implementing
a new transport layer network protocol called QUIC UDP Internet Connection, or QUIC. QUIC offers faster and more reliable connections to transmit data. To do so, it uses the user datagram protocol or UDP instead of TCP.
What are the benefits of HTTP/3?
-Reduced latency
-Enhanced handling of
packet loss
-Improved security
-Better connection migration
-Improved server push
What is QUIC and how does it allow for multiplexed streams?
QUIC (Quick UDP Internet Connections) is a transport layer network protocol that uses UDP (User Datagram Protocol) instead of TCP (Transmission Control Protocol). It’s designed to improve the performance and security of web applications by reducing latency and providing better congestion control. QUIC is used in HTTP/3, the latest version of the HTTP protocol, and aims to provide faster and more efficient web browsing experiences.