HTTP/2 - for TCP/IP Geeks Stockholm

24,306 views
24,176 views

Published on

HTTP/2 - background, overview, status and the future.

Slides from the talk I did for TCP/IP Geeks Stockholm on May 6 2015.

Published in: Technology
0 Comments
26 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
24,306
On SlideShare
0
From Embeds
0
Number of Embeds
19,832
Actions
Shares
0
Downloads
78
Comments
0
Likes
26
Embeds 0
No embeds

No notes for slide

HTTP/2 - for TCP/IP Geeks Stockholm

  1. 1. Daniel Stenberg, May 6th 2015
  2. 2. Daniel Stenberg, May 6th 2015 HTTP Today HTTP/2 basics Status Future Q&A
  3. 3. Daniel Stenberg, May 6th 2015 Daniel Stenberg Email: daniel@haxx.se Twitter: @bagder Web: daniel.haxx.se Blog: daniel.haxx.se/blog network hacker at
  4. 4. Daniel Stenberg, May 6th 2015 Please ask! … just maybe everything isn't crystal clear at once.
  5. 5. Daniel Stenberg, May 6th 2015 Internet Today HTTP for everything The web has changed significantly since 1996
  6. 6. Daniel Stenberg, May 6th 2015 Request and payload growth in 4 years... 7777 100100 725K725K 1900K1900K httparchive.org
  7. 7. Daniel Stenberg, May 6th 2015 Roundtrip Bonanza
  8. 8. Daniel Stenberg, May 6th 2015 connections per page 38 httparchive.org
  9. 9. Daniel Stenberg, May 6th 2015 Latency adds up 4,000 ms 750 ms Page load time Round trip time0 ms 240 ms MikeBelshe
  10. 10. Daniel Stenberg, May 6th 2015 Head of line blocking
  11. 11. Daniel Stenberg, May 6th 2015 HTTP 1.1 workarounds
  12. 12. Daniel Stenberg, May 6th 2015 SpritingSpriting
  13. 13. Daniel Stenberg, May 6th 2015 Inlining .icon1 { background: url(data:image/png;base64,<data>) no-repeat; } .icon2 { background: url(data:image/png;base64,<data>) no-repeat; }
  14. 14. Daniel Stenberg, May 6th 2015 Concatenation $ cat *.js > single-monster.js
  15. 15. Daniel Stenberg, May 6th 2015 Sharding
  16. 16. Daniel Stenberg, May 6th 2015 Quirky Annoying for developers Adds layers of tools Hampers caching Downloads too much
  17. 17. Daniel Stenberg, May 6th 2015
  18. 18. Daniel Stenberg, May 6th 2015 HTTP/2
  19. 19. Daniel Stenberg, May 6th 2015 “Just a new framing layer” maintains HTTP paradigms http:// and https:// URLs cannot be changed HTTP/1.1 servers and clients will be around for decades Proxies must be able to convert 1:1 Less optional parts No more minor version!
  20. 20. Daniel Stenberg, May 6th 2015 Binary •No more telnet tricks •Easier framing •TLS and compression anyway... •Wireshark inspector •A handful set frame types, like HEADERS and DATA
  21. 21. Daniel Stenberg, May 6th 2015 Multiplexed (1/2) •Multiple streams over a single physical connection •Max number of parallel streams set by peer
  22. 22. Daniel Stenberg, May 6th 2015 Multiplexed (2/2)
  23. 23. Daniel Stenberg, May 6th 2015 Better utilization of bandwidth
  24. 24. Daniel Stenberg, May 6th 2015 Header compression •HTTP headers are big and are growing •HTTP 1 had no header compression •TCP slow start and initial window size •Headers are notoriously repetitive •Cookies •HPACK •Not a CRIME victim •Padding
  25. 25. Daniel Stenberg, May 6th 2015 Streams Dynamic priority Flow control AA BB CC Dependencies
  26. 26. Daniel Stenberg, May 6th 2015 Server push Give me HTML please! Here's HTML for you Here's CSS for you
  27. 27. Daniel Stenberg, May 6th 2015 Stricter TLS TLS version 1.2+ only Stricter cipher suite requirements No renegotiations
  28. 28. Daniel Stenberg, May 6th 2015 HTTP/2 is not Mandatory TLS Changing HTTP headers
  29. 29. Daniel Stenberg, May 6th 2015 How will HTTP/2 affect users? Faster page loads More responsive loading More HTTPS
  30. 30. Daniel Stenberg, May 6th 2015 How will HTTP/2 affect web development? HTTP/1 work-arounds hurt HTTP/2 perf Need to do separate tweaks Optimal HTTP/2 usage will need some time
  31. 31. Daniel Stenberg, May 6th 2015 Implementations Nghttp2 Http2-katana Node-http2 Firefox Http2-perl Iij-http2 Akamai Chrome OpenLiteSpeed Twitter Wireshark Ericsson MSP Http2 (Go) Http2-go OkHttp Trusterd Haskell http lib SteelApp ADC Google GFE Deuterium Hyper Undertow F5 Sasazka Lucid H2O Warp curl Cl-http2 Netty Jetty Microsoft Http-2 Protocol::HTTP2 mod_h2 Nginx wget https://github.com/http2/http2-spec/wiki/Implementations
  32. 32. Daniel Stenberg, May 6th 2015 Will HTTP/2 get widely deployed? “Look at IPv6” SPDY proved fast growth can happen Major browsers are on the train Many sites already did SPDY - likely to go HTTP/2
  33. 33. Daniel Stenberg, May 6th 2015 Schedule Firefox 35 – enabled by default January 13th Chrome 40 – enabled by default January 21st IESG approved on February 18th HTTP/2 final RFC in Q2 2015 ?
  34. 34. Daniel Stenberg, May 6th 2015 HTTP/2 – May 6th 2015 All browser support seen so far only over HTTPS Firefox: HTTP/2 in 10%of all HTTP responses1 HTTP/2 is used 10 times more than HTTP/1.0 Google: HTTP/2 used in 18% of global traffic2 HTTP/2 is supported by 44% of browsers in use right now IPv6: 6.6% today, almost 20 years after first RFC3 1. Rough and not statistically sound numbers from Mozilla Telemetry data for Firefox 36. 2. Rough and rapidly changing numbers in an evolving climate. Graciously provided by Google. 3. https://www.google.com/intl/en/ipv6/statistics.html
  35. 35. Daniel Stenberg, May 6th 2015 Browser support http://caniuse.com/#feat=http2
  36. 36. Daniel Stenberg, May 6th 2015 My tealeaves tell me... http://daniel.haxx.se/blog/2015/03/31/the-state-and-rate-of-http2-adoption/ 10% at end of 2015
  37. 37. Daniel Stenberg, May 6th 2015 Future HTTP/2 lays the foundation for the future Time to drop legacy HTTP “mistakes”? HTTP/3 can happen faster QUIC The HTTP Workshop (Münster, 27-30 July 2015) https://httpworkshop.github.io/
  38. 38. Daniel Stenberg, May 6th 2015 Final recap Binary and multiplexed Primarily over TLS Users won't see a 2 anywhere It's already here
  39. 39. Daniel Stenberg, May 6th 2015 Thank you! See also http2 explained http://daniel.haxx.se/http2
  40. 40. Daniel Stenberg, May 6th 2015 Doing good is part of our code
  41. 41. Daniel Stenberg, May 6th 2015 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
  42. 42. Daniel Stenberg, May 6th 2015 License This presentation and its contents are licensed under the Creative Commons Attribution 4.0 license: http://creativecommons.org/licenses/by/4.0/

×