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

HTTP/2: Because The Web Was Too Easy

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.

Cory Benfield

September 19, 2014
Tweet

More Decks by Cory Benfield

Other Decks in Programming

Transcript

  1. HTTP/2
    Because The Web Was
    Too Easy

    View Slide

  2. Hi

    View Slide

  3. @lukasaoz
    @lukasa

    View Slide

  4. View Slide

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

    View Slide

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

    View Slide

  7. HTTP is
    Everywhere

    View Slide

  8. HTTP is Everywhere
    • The web is HTTP.
    • Many of you work with the
    web.
    • Your jobs depend on HTTP.

    View Slide

  9. HTTP is
    Imperfect

    View Slide

  10. HTTP is
    • Complicated
    • Inefficient
    • High latency

    View Slide

  11. HTTP is
    Holding Us
    Back

    View Slide

  12. What’s The
    Solution?

    View Slide

  13. New Protocol!
    • From the IETF
    • HTTPBis WG starts discussion
    in 2012
    • Based on SPDY

    View Slide

  14. HTTP/2

    View Slide

  15. Binary
    • Text protocols are easy to
    debug but complex to parse
    • Binary is simpler.
    • Simpler (usually) means faster

    View Slide

  16. Efficient
    • Multiplexing (with priority and
    flow control)
    • Header compression (HPACK)
    • Early stream termination.
    • Server Push

    View Slide

  17. Imperfect

    View Slide

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

    View Slide

  19. HTTP/2 is Imperfect
    • Difficult to reason about
    • Challenging to debug
    • Awkward edge cases
    • Inherently concurrent

    View Slide

  20. Play

    View Slide

  21. Implementations
    • hyper (Python, client)
    • nghttp2 (C, client and server)
    • Firefox (Browser)
    • curl/libcurl (client)

    View Slide

  22. hyper
    • Actively developed.
    • Come help!
    • github.com/Lukasa/hyper
    • hyper.rtfd.org/en/development

    View Slide

  23. Further Reading
    • http2-explained.rtfd.org
    • http2.github.io

    View Slide

  24. Thanks!
    @lukasaoz
    @lukasa

    View Slide