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

Hyperactive: HTTP/2 and Python

Hyperactive: HTTP/2 and Python

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

April 10, 2015
Tweet

Transcript

  1. 2 Hyperactive HTTP/2 and Python

  2. 2 Hi

  3. 2 @lukasaoz @lukasa

  4. 2

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

    others PSF Contributing Member
  6. HTTPBis Working Group HTTP/2 Stack (hyper)

  7. HTTP/1.1 is Old

  8. HTTP/1.1 is Inefficient

  9. HTTP/1.1 is Slowing Us Down

  10. HTTP/2

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

    to parse • Binary is simpler. • Simpler (usually) means faster
  12. Efficient • Multiplexing (with priority/flow control) • Header compression (HPACK)

    • Early stream termination. • Server Push
  13. Not universally well received

  14. Poul-Henning Kamp • “HTTP/2.0 is not a technical masterpiece…I would

    flunk students in my (hypothetical) protocol design class if they submitted it.”
  15. None
  16. Imperfect

  17. HTTP/2 is Imperfect • Difficult to reason about • Challenging

    to debug • Awkward edge cases • Inherently concurrent
  18. Bloody Good!

  19. HTTP/1.1 HTTP/2

  20. Play

  21. Implementations nghttp2 http2-katana node-http2 Firefox http2-perl iij-http2 Akamai Ghost Chromium

    GFE Twitter Wireshark Ericsson MSP http2 http2-go OkHttp Trusterd http-2 hyper libcurl cl-http2-protocol Netty Jetty F5 Sasazka Internet Explorer Lucid H2O Undertow Deuterium OpenLiteSpeed Haskell Warp
  22. None
  23. hyper • Actively developed. • Come help! • github.com/Lukasa/hyper •

    hyper.rtfd.org/en/development
  24. http2bin.org • Runscope’s httpbin. • Running behind H2O. • HTTP/1.1

    and HTTP/2.
  25. Further Reading • http://daniel.haxx.se/ http2/ • http://http2.github.io

  26. Thanks! @lukasaoz @lukasa