Successfully reported this slideshow.
Your SlideShare is downloading. ×

Quick primer on http2

More Related Content

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

×