front | blog | photos | contact | projects
http2 explained

http2 explained describes the protocol HTTP/2 at a technical and protocol level. Background, the protocol, the implementations and the future.

This is a "living document" in the sense that I keep posting updates, and I care about and value feedback, questions and comments I get about it. This document improves over time thanks to a joint effort. Full credits to all helpers at the end of the document.

This document has been downloaded more than 70,000 times and has been given praise widely. Give it a shot! It is provided free of charge under a Creative Commons license.

Errors in the document?

Comment on or help me fix errors in this document! Email daniel-http2@haxx.se or even better: submit an issue.

See also the document FAQ.

Changelog

Version 1.10: February 18, 2015

  • 1: the protocol has been "okayed"
  • 4.1: refreshed the wording since 2014 is last year
  • front: added image and call it "http2 explained" there, fixed link
  • 1.4: added document history section
  • many spelling and grammar mistakes corrected
  • 14: added thanks to bug reporters
  • 2.4: (better) labels for the HTTP growth graph
  • 6.3: corrected the wagon order in the multiplexed train
  • 6.5.1: HPACK draft-12

Version 1.9: February 11, 2015

  • Updated to HTTP/2 draft-17 and HPACK draft-11
  • Added section "10. http2 in Chromium" (== one page longer now)
  • Lots of spell fixes
  • At 30 implementations now
  • 8.5: added some current usage numbers
  • 8.3: mention internet explorer too
  • 8.3.1 "missing implementations" added
  • 8.4.3: mention that TLS also increases success rate

Version 1.8: January 15th, 2015

  • Compressed the images better, leading to a much smaller PDF
  • Updated to draft-16 and hpack-10
  • Replaced several images
  • Linkified many URLs
  • Added a few questions in 8.4
  • Mentions IETF Last Call
Source

The full document is available in libreoffice's FODT format from github.

Other languages

Download http2 explained in Russian, translation by Vladimir Lettiev

Presentations

The http2 presentation version of the information. Updated on June 12th 2014. It is also available in source format in the github repo.

HTTP/2 Right Now from February 1st, 2015

Sample stream

h2-14-plain-nghttp2.pcapng is a Wireshark capture of curl talking http2 draft-14 in plain text with nghttp2.org.

This page was updated February 25, 2015.