Slide 1

Slide 1 text

2 Hyperactive HTTP/2 and Python

Slide 2

Slide 2 text

2 Hi

Slide 3

Slide 3 text

2 @lukasaoz @lukasa

Slide 4

Slide 4 text

2

Slide 5

Slide 5 text

2 Requests Core Contributor urllib3 Core Contributor Maintainer of 10+ others PSF Contributing Member

Slide 6

Slide 6 text

HTTPBis Working Group HTTP/2 Stack (hyper)

Slide 7

Slide 7 text

HTTP/1.1 is Old

Slide 8

Slide 8 text

HTTP/1.1 is Inefficient

Slide 9

Slide 9 text

HTTP/1.1 is Slowing Us Down

Slide 10

Slide 10 text

HTTP/2

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Not universally well received

Slide 14

Slide 14 text

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.”

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

Imperfect

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

Bloody Good!

Slide 19

Slide 19 text

HTTP/1.1 HTTP/2

Slide 20

Slide 20 text

Play

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

http2bin.org • Runscope’s httpbin. • Running behind H2O. • HTTP/1.1 and HTTP/2.

Slide 25

Slide 25 text

Further Reading • http://daniel.haxx.se/ http2/ • http://http2.github.io

Slide 26

Slide 26 text

Thanks! @lukasaoz @lukasa