HTTP/2 (or “H2” as the cool kids call it) has been ratified for months, and browsers already support or have committed to supporting the protocol. Everything we hear tells us that the new version of HTTP will provide significant performance benefits while requiring little to no change to our applications—all the problems with HTTP/1.x have seemingly been addressed; we no longer need the “hacks” that enabled us to circumvent them; and the Internet is about to be a happy place at last. But maybe we should put the pom-poms down for a minute. Deploying HTTP/2 may not be as easy as it seems since the protocol brings with it new complications and issues. Likewise, the new features the spec introduces may not work as seamlessly as we hope. Hooman Beheshti examines HTTP/2’s core features and how they relate to real-world conditions, discussing the positives, negatives, new caveats, and practical considerations for deploying HTTP/2. Topics include: The single-connection model and the impact of degraded network conditions on HTTP/2 versus HTTP/1 How server push interacts (or doesn’t) with modern browser caches What HTTP/2’s flow control mechanism means for server-to-client communication New considerations for deploying HPACK compression Difficulties in troubleshooting HTTP/2 communications, new tools, and new ways to use old tools