HTTP 2

In HTTP 1.1, Google Chrome sends six parallel connections (why 6?) to fetch data from the server.

HTTP/2, or HTTP/2.0, is a major revision of the HTTP network protocol used by the World Wide Web. It was standardized in 2015 by the Internet Engineering Task Force (IETF) as RFC 7540. The primary goals of HTTP/2 are to reduce latency, minimize protocol overhead, and enable more efficient use of network resources. Here are some key points about HTTP/2:

Attributes

Binary Protocol

Unlike HTTP/1.x, which is textual, HTTP/2 uses a binary framing layer, which makes it more efficient to parse, more compact, and less error-prone [1][2].
The binary nature of HTTP/2 brings several advantages:

Multiplexing

HTTP/2 introduces multiplexing, which allows multiple requests and responses to be in flight simultaneously over a single TCP connection. This reduces the latency introduced by HTTP/1.x's head-of-line blocking problem, where a single slow request could block subsequent requests[1:1][2:1].

Stream Prioritization

Clients can prioritize streams to request that specific resources be delivered first. This is useful for loading critical resources faster, which can improve the performance of web applications[1:2][2:2].

Server Push

HTTP/2 has a server push feature that allows servers to send resources to the client before they are explicitly requested, potentially improving the time to render pages for the client[1:3][2:3]. However, this becomes obsolete, as multiple resources can be sent in one client request.

Header Compression

HTTP/2 uses HPACK compression to reduce the size of headers. Since headers are sent with every request and response, this compression allows for reduced latency and bandwidth usage[1:4][2:4].

Security

HTTP/2 works well with SSL/TLS encryption. While encryption is not mandatory in the protocol, most modern browsers only support HTTP/2 over a secure connection, making encryption de facto mandatory[1:5].

Adoption and Support

Modern web browsers and web servers widely support HTTP/2. It is designed to be backward compatible with HTTP/1.1, so web applications do not need to be rewritten to take advantage of the new features[6].

Performance Improvements

HTTP/2 significantly improves performance over HTTP/1.1, especially for websites with many resources and those accessed over high-latency connections like mobile networks [1:6][7].

In summary, HTTP/2 is designed to address the limitations of HTTP/1.1 by offering a more efficient, secure, and faster web experience. It achieves this through features like multiplexing, stream prioritization, server push, header compression, and a binary protocol format. As a result, HTTP/2 can improve web page loading times and the overall user experience.

Pros

Cons


  1. https://nordvpn.com/blog/what-is-http2/ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. https://web.dev/articles/performance-http2 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  3. https://stackoverflow.com/questions/58498116/why-is-it-said-that-http2-is-a-binary-protocol ↩︎

  4. https://www.imperva.com/learn/performance/http2/ ↩︎ ↩︎

  5. https://http2-explained.haxx.se/en/part6 ↩︎

  6. https://en.wikipedia.org/wiki/HTTP/2 ↩︎

  7. https://imagekit.io/blog/http2-vs-http1-performance/ ↩︎

Thoughts 🤔 by Soumendra Kumar Sahoo is licensed under CC BY 4.0