Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HTTP/2: Because The Web Was Too Easy

214c694acb154321379cbc58dc91528c?s=47 Cory Benfield
September 19, 2014

HTTP/2: Because The Web Was Too Easy

The internet has spoken, HTTP is to get its first serious update in 15 years. In this talk we'll discuss what HTTP/2 is, why it's happening, and how it's going to affect you and everyone you love. We'll briefly talk about how you can get started with HTTP/2, and some interesting projects associated with it, including Hyper, the first Python HTTP/2 library.

214c694acb154321379cbc58dc91528c?s=128

Cory Benfield

September 19, 2014
Tweet

Transcript

  1. HTTP/2 Because The Web Was Too Easy

  2. Hi

  3. @lukasaoz @lukasa

  4. None
  5. Requests Core Contributor urllib3 Core Contributor Maintainer of 10+ others

  6. Member: IETF HTTPBis Working Group Implementer: HTTP/2 Stack (hyper)

  7. HTTP is Everywhere

  8. HTTP is Everywhere • The web is HTTP. • Many

    of you work with the web. • Your jobs depend on HTTP.
  9. HTTP is Imperfect

  10. HTTP is • Complicated • Inefficient • High latency

  11. HTTP is Holding Us Back

  12. What’s The Solution?

  13. New Protocol! • From the IETF • HTTPBis WG starts

    discussion in 2012 • Based on SPDY
  14. HTTP/2

  15. Binary • Text protocols are easy to debug but complex

    to parse • Binary is simpler. • Simpler (usually) means faster
  16. Efficient • Multiplexing (with priority and flow control) • Header

    compression (HPACK) • Early stream termination. • Server Push
  17. Imperfect

  18. HTTP/2 is Imperfect • Designed quickly. • Based on SPDY.

    • Designed primarily for browsers
  19. HTTP/2 is Imperfect • Difficult to reason about • Challenging

    to debug • Awkward edge cases • Inherently concurrent
  20. Play

  21. Implementations • hyper (Python, client) • nghttp2 (C, client and

    server) • Firefox (Browser) • curl/libcurl (client)
  22. hyper • Actively developed. • Come help! • github.com/Lukasa/hyper •

    hyper.rtfd.org/en/development
  23. Further Reading • http2-explained.rtfd.org • http2.github.io

  24. Thanks! @lukasaoz @lukasa