General Description
Barry Pollard's book "HTTP/2 in Action" is a detailed technical guide to the evolution of the HTTP web protocol and the practical application of HTTP/2 in real-world projects. The author systematically breaks down the protocol's development path: from the early HTTP/0.9 and HTTP/1.1 to the emergence of HTTP/2 as a response to the growing demands for speed, scalability, and efficiency in modern web applications.
Particular attention is given to the key limitations of HTTP/1.1 — head-of-line blocking, redundant connections, inefficient header handling, and connection establishment delays. Against this backdrop, the architecture of HTTP/2 is explained in detail: the binary frame format, stream multiplexing, prioritization, header compression (HPACK), server push, and flow control.
The author does not limit himself to HTTP/2 alone but examines it within the context of the network stack. The specifics of TCP and IP, the impact of latency, bandwidth, TLS handshakes, and DNS on overall performance are analyzed. This approach allows for an understanding that optimizing web applications is impossible without comprehending how the underlying network mechanisms actually work.
The practical part of the book is dedicated to implementing HTTP/2: server configuration, compatibility issues, potential problems during migration, and performance measurement methods. Pollard also touches upon alternative directions in web protocol development, including QUIC, which allows us to view HTTP/2 as a stage in evolution rather than the final endpoint.
The book combines theory, history, and practice, supporting the material with diagrams, graphs, and technical examples, thereby forming a holistic understanding of network communication on the web.
Opinion
This is another good programming book that any programmer must read. It details the history of the HTTP/2 protocol and its previous versions: 0.9 and 1.1. It thoroughly examines the problems that arose in all versions of the protocol and the ways to possibly solve them (if solutions even exist). Cookies, push mechanisms, frames, streams, headers, connections, HTTPS, and many other concepts that make up this protocol are discussed in detail. Considerable attention is also paid to neighboring protocols, such as IP and especially TCP, on top of which HTTP operates. The author mentions real alternatives to HTTP/2, such as the QUIC protocol. DNS, handshake, latency, and bandwidth are topics that also appear frequently in the book. Many graphs and diagrams are used, which helps in better comprehending the material. The result is a good understanding of how the protocol works overall and what needs to be done to optimize performance. At the end of the book, the author shows examples of upgrading web servers to HTTP/2 and the potential problems on the path to making the transition yourself.