Http2 right now

31
HTTP/2 right now Daniel Stenberg, February 1 st 2015

Transcript of Http2 right now

Page 1: Http2 right now

HTTP/2 right now

Daniel Stenberg, February 1st 2015

Page 2: Http2 right now

Agenda

HTTP Today

HTTP/2 basics

Status

Future

Q&A

Page 3: Http2 right now

Daniel Stenberg

Email: [email protected]: @bagderWeb: daniel.haxx.seBlog: daniel.haxx.se/blog

network hacker at

Page 4: Http2 right now

Please ask!

… but wait for the Q&A and if not enough, just catch me afterward.

Page 5: Http2 right now

Today

HTTP for everythingThe web has changed significantly since 1996

Page 6: Http2 right now

Request and payload growth

in 4 years...

7777

100100

725K725K

1900K1900K

http

arch

ive.

org

Page 7: Http2 right now

connections per page

38ht

tpar

chiv

e.or

g

Page 8: Http2 right now

Latency adds up

4,000 ms

750 ms

Page load time

Round trip time0 ms 240 ms

Mik

e Be

lshe

Page 9: Http2 right now

Head of line blocking

Page 10: Http2 right now

HTTP 1.1 work-arounds

Page 11: Http2 right now

Spriting

Page 12: Http2 right now

Inlining

.icon1 { background: url(data:image/png;base64,<data>) no-repeat;}

.icon2 { background: url(data:image/png;base64,<data>) no-repeat;}

Page 13: Http2 right now

Concatenation

$ cat *.js > a-single-monster.js

Page 14: Http2 right now

Sharding

Page 15: Http2 right now

Quirky work-arounds

Annoying for developersAdds layers of toolsHampers cachingDownloads too much

Page 16: Http2 right now

HTTP/2

Page 17: Http2 right now

“Just a new framing layer”

maintains HTTP paradigmshttp:// and https:// URLs cannot be changedHTTP/1.1 servers and clients will be around for decadesProxies must be able to convert 1:1Less optional partsNo more minor version!

Page 18: Http2 right now

HTTP/2 framing

BinaryMultiplexed streams; with individual priorities, dependencies and flow-controlHeader compressionServer push

Page 19: Http2 right now

HTTP/2 is not

Mandatory TLSChanging HTTP headers

Page 20: Http2 right now

How will HTTP/2 affect web users?

Faster page loadsMore responsive loading

Page 21: Http2 right now

How will HTTP/2 affect web development?

HTTP/1 work-arounds hurt HTTP/2 perfNeed to do separate tweaksMaximum HTTP/2 usage will need some time

Page 22: Http2 right now

Implementations

Nghttp2Http2-katanaNode-http2FirefoxHttp2-perlIij-http2AkamaiChrome

TwitterWiresharkEricsson MSPHttp2 (Go)Http2-goOkHttpTrusterd

Google GFEDeuteriumHyperUndertowF5SasazkaLucidH2O

curlCl-http2NettyJettyMicrosoftHttp-2Apachenginx

https://github.com/http2/http2-spec/wiki/Implementations

Page 23: Http2 right now

Will HTTP/2 get widely deployed?

“Look at IPv6”SPDY proved fast growth can happenMajor browsers are on the trainMany sites already did SPDY - likely to go HTTP/2

Page 24: Http2 right now

How will HTTP/2 affect web development?

HTTP/1 work-arounds hurt http2 perfNeed to do separate tweaksMaximum HTTP/2 usage will need some time

Page 25: Http2 right now

HTTP/2 – Status of February 1st 2015

Firefox: HTTP/2 in 9% of all HTTP responses1

HTTP/2 is used 9 times more than HTTP/1.0

Google: HTTP/2 used in 5% of global traffic2

IPv6: 5% today, almost 20 years after first RFC

1. Rough and not statistically sound numbers from Mozilla Telemetry data for Firefox 35.2. Rough and rapidly changing numbers in an evolving climate. Graciously provided by Google.

Page 26: Http2 right now

Schedule

IETF Last Call ended on January 14th

Firefox 35 – enabled by default January 13th

Chrome 40 – enabled by default January 21st

HTTP/2 final RFC in Q1 2015 ?

Page 27: Http2 right now

HTTP/3 ?

HTTP/2 lays the foundation for the futureTime to drop legacy HTTP “mistakes”?HTTP/3 can happen sooner than the 1.1 to 2 took

Page 28: Http2 right now

Thank you!

See also http2 explained: http://daniel.haxx.se/http2

Page 29: Http2 right now

Doing good is part of our code

Page 30: Http2 right now

Credits

✗ HTTP and TCP trend numbers from http://httparchive.org

✗ RTT / page load data from Mike Belshe✗ HTTP/2 usage numbers by Google and Firefox Telemetry

✗ Lego pieces borrowed from my kids

Page 31: Http2 right now

License

This presentation and its contents are licensed under the Creative Commons Attribution 4.0 license: http://creativecommons.org/licenses/by/4.0/