Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Quick primer on http2

852 views

Published on

Presented in RootConf 2015

Published in: Internet
  • Be the first to comment

Quick primer on http2

  1. 1. Quick primer on http2 Cyrus Dasadia @ExtremeUnix
  2. 2. HTTP 1.1 est. 1999 - Piggybacks on TCP - No efficient reusability - Head-of-line blocking Problem
  3. 3. Enter HTTP/2 (httpbis) - Started off from SPDY/3 draft - HTTPbis working on draft-17 - Will not have any minor versions - No change in http(s) URI pattern
  4. 4. How does it look? Handshake
  5. 5. How does it look? It’s all binary, love.
  6. 6. Seriously, how does it look? Frames: image: tools.ietf.org/html/draft-ietf-httpbis-http2-17
  7. 7. Frames Basic protocol unit of HTTP/2 is Frame ● HEADERS ● DATA ● SETTINGS ● PUSH_PROMISE ● GOAWAY ● ...few more
  8. 8. Header Frames - Request Pseudo-headers :method, :scheme, : authority, :path - Response Pseudo-headers :status - Cookie header field uses semicolon “;” - Header compression (HPACK)
  9. 9. Header Frames Comparing HTTP/1.1 response with HTTP/2: image: tools.ietf.org/html/draft-ietf-httpbis-http2-17
  10. 10. Streams - One TCP connection to rule them all! - Concurrent, bi-directional and unilateral - Streams can be prioritized and re-prioritized - Stream can have dependency hierarchy - Flow control avoids interference
  11. 11. Streams
  12. 12. Streams Simple Prioritization Stream Hierarchy image: tools.ietf.org/html/draft-ietf-httpbis-http2-17
  13. 13. PUSH_PROMISE
  14. 14. Current state: - Google, Twitter, are on http2 - Facebook, HN are on SPDY - cURL, ATS, Nghttp2 - Firefox, Chrome
  15. 15. Will it help me? - No more than one connection per client - Connection reusability by multiplexing - TLS with a reduced hop
  16. 16. Will it help me? DIY http2 CDN?
  17. 17. P.S. Keep an eye out for RFC-7540 Thank you!
  18. 18. References: http://tools.ietf.org/html/draft-ietf-httpbis-http2-17 http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-12 http://chimera.labs.oreilly.com/books/1230000000545/ch12.html http://daniel.haxx.se/http2/ https://github.com/http2/http2-spec/wiki/Implementations http://tools.ietf.org/rfc/rfc7540 http://tools.ietf.org/rfc/rfc7541 https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=51810161 http://wiki.squid-cache.org/Features/HTTP2 http://nginx.com/blog/how-nginx-plans-to-support-http2/ https://github.com/tatsuhiro-t/nghttp2

×