http2 right now
TRANSCRIPT
![Page 1: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/1.jpg)
HTTP/2 right now
Daniel Stenberg, February 1st 2015
![Page 2: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/2.jpg)
Agenda
HTTP Today
HTTP/2 basics
Status
Future
Q&A
![Page 3: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/3.jpg)
Daniel Stenberg
Email: [email protected]: @bagderWeb: daniel.haxx.seBlog: daniel.haxx.se/blog
network hacker at
![Page 4: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/4.jpg)
Please ask!
… but wait for the Q&A and if not enough, just catch me afterward.
![Page 5: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/5.jpg)
Today
HTTP for everythingThe web has changed significantly since 1996
![Page 6: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/6.jpg)
Request and payload growth
in 4 years...
7777
100100
725K725K
1900K1900K
http
arch
ive.
org
![Page 7: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/7.jpg)
connections per page
38ht
tpar
chiv
e.or
g
![Page 8: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/9.jpg)
Head of line blocking
![Page 10: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/10.jpg)
HTTP 1.1 work-arounds
![Page 11: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/11.jpg)
Spriting
![Page 12: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/13.jpg)
Concatenation
$ cat *.js > a-single-monster.js
![Page 14: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/14.jpg)
Sharding
![Page 15: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/15.jpg)
Quirky work-arounds
Annoying for developersAdds layers of toolsHampers cachingDownloads too much
![Page 16: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/16.jpg)
HTTP/2
![Page 17: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/17.jpg)
“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](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/18.jpg)
HTTP/2 framing
BinaryMultiplexed streams; with individual priorities, dependencies and flow-controlHeader compressionServer push
![Page 19: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/19.jpg)
HTTP/2 is not
Mandatory TLSChanging HTTP headers
![Page 20: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/20.jpg)
How will HTTP/2 affect web users?
Faster page loadsMore responsive loading
![Page 21: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/28.jpg)
Thank you!
See also http2 explained: http://daniel.haxx.se/http2
![Page 29: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/29.jpg)
Doing good is part of our code
![Page 30: Http2 right now](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062313/55a5d7961a28abe6548b4627/html5/thumbnails/31.jpg)
License
This presentation and its contents are licensed under the Creative Commons Attribution 4.0 license: http://creativecommons.org/licenses/by/4.0/