SlideShare a Scribd company logo
1 of 42
Download to read offline
Daniel Stenberg, May 6th
2015
Daniel Stenberg, May 6th
2015
HTTP Today
HTTP/2 basics
Status
Future
Q&A
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
Daniel Stenberg, May 6th
2015
Please ask!
… just maybe everything isn't crystal clear at once.
Daniel Stenberg, May 6th
2015
Internet Today
HTTP for everything
The web has changed significantly since 1996
Daniel Stenberg, May 6th
2015
Request and payload growth
in 4 years...
7777
100100
725K725K
1900K1900K
httparchive.org
Daniel Stenberg, May 6th
2015
Roundtrip Bonanza
Daniel Stenberg, May 6th
2015
connections per page
38
httparchive.org
Daniel Stenberg, May 6th
2015
Latency adds up
4,000 ms
750 ms
Page
load
time
Round
trip
time0 ms 240 ms
MikeBelshe
Daniel Stenberg, May 6th
2015
Head of line blocking
Daniel Stenberg, May 6th
2015
HTTP 1.1
workarounds
Daniel Stenberg, May 6th
2015
SpritingSpriting
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;
}
Daniel Stenberg, May 6th
2015
Concatenation
$ cat *.js > single-monster.js
Daniel Stenberg, May 6th
2015
Sharding
Daniel Stenberg, May 6th
2015
Quirky
Annoying for developers
Adds layers of tools
Hampers caching
Downloads too much
Daniel Stenberg, May 6th
2015
Daniel Stenberg, May 6th
2015
HTTP/2
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!
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
Daniel Stenberg, May 6th
2015
Multiplexed (1/2)
•Multiple streams over a single physical connection
•Max number of parallel streams set by peer
Daniel Stenberg, May 6th
2015
Multiplexed (2/2)
Daniel Stenberg, May 6th
2015
Better utilization of bandwidth
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
Daniel Stenberg, May 6th
2015
Streams
Dynamic priority
Flow control
AA
BB CC
Dependencies
Daniel Stenberg, May 6th
2015
Server push
Give me HTML please!
Here's HTML for you
Here's CSS for you
Daniel Stenberg, May 6th
2015
Stricter TLS
TLS version 1.2+ only
Stricter cipher suite requirements
No renegotiations
Daniel Stenberg, May 6th
2015
HTTP/2 is not
Mandatory TLS
Changing HTTP headers
Daniel Stenberg, May 6th
2015
How will HTTP/2 affect users?
Faster page loads
More responsive loading
More HTTPS
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
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
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
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 ?
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
Daniel Stenberg, May 6th
2015
Browser support
http://caniuse.com/#feat=http2
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
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/
Daniel Stenberg, May 6th
2015
Final recap
Binary and multiplexed
Primarily over TLS
Users won't see a 2 anywhere
It's already here
Daniel Stenberg, May 6th
2015
Thank you!
See also http2 explained
http://daniel.haxx.se/http2
Daniel Stenberg, May 6th
2015
Doing good is part of our code
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
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/

More Related Content

What's hot

O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2Load Impact
 
HTTP/2 Changes Everything
HTTP/2 Changes EverythingHTTP/2 Changes Everything
HTTP/2 Changes EverythingLori MacVittie
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 IntroductionWalter Liu
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1Daniel Austin
 
Introducing HTTP/2
Introducing HTTP/2Introducing HTTP/2
Introducing HTTP/2Ido Flatow
 
HTTP/2 : why upgrading the web? - apidays Paris
HTTP/2 : why upgrading the web? - apidays ParisHTTP/2 : why upgrading the web? - apidays Paris
HTTP/2 : why upgrading the web? - apidays ParisQuentin Adam
 
HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016Daniel Stenberg
 
HTTP/2 for Developers
HTTP/2 for DevelopersHTTP/2 for Developers
HTTP/2 for DevelopersSvetlin Nakov
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2Ido Flatow
 
HTTP 2.0 Why, How and When
HTTP 2.0 Why, How and WhenHTTP 2.0 Why, How and When
HTTP 2.0 Why, How and WhenCodemotion
 
HTTP/2 standard for video streaming
HTTP/2 standard for video streamingHTTP/2 standard for video streaming
HTTP/2 standard for video streamingHung Thai Le
 
So that was HTTP/2, what's next?
So that was HTTP/2, what's next?So that was HTTP/2, what's next?
So that was HTTP/2, what's next?Daniel Stenberg
 
HTTP/2: What no one is telling you
HTTP/2: What no one is telling youHTTP/2: What no one is telling you
HTTP/2: What no one is telling youFastly
 
HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? Sigma Software
 
Http2: why the web is upgrading? - bdx.io 2015
Http2: why the web is upgrading?   - bdx.io 2015Http2: why the web is upgrading?   - bdx.io 2015
Http2: why the web is upgrading? - bdx.io 2015Quentin Adam
 

What's hot (20)

O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
 
HTTP/2 Changes Everything
HTTP/2 Changes EverythingHTTP/2 Changes Everything
HTTP/2 Changes Everything
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 Introduction
 
HTTP2 is Here!
HTTP2 is Here!HTTP2 is Here!
HTTP2 is Here!
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1
 
SPDY and HTTP/2
SPDY and HTTP/2SPDY and HTTP/2
SPDY and HTTP/2
 
Introducing HTTP/2
Introducing HTTP/2Introducing HTTP/2
Introducing HTTP/2
 
HTTP/2 : why upgrading the web? - apidays Paris
HTTP/2 : why upgrading the web? - apidays ParisHTTP/2 : why upgrading the web? - apidays Paris
HTTP/2 : why upgrading the web? - apidays Paris
 
HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016
 
HTTP/2 for Developers
HTTP/2 for DevelopersHTTP/2 for Developers
HTTP/2 for Developers
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
HTTP 2.0 Why, How and When
HTTP 2.0 Why, How and WhenHTTP 2.0 Why, How and When
HTTP 2.0 Why, How and When
 
HTTP/2 in Examples
HTTP/2 in ExamplesHTTP/2 in Examples
HTTP/2 in Examples
 
HTTP/2 standard for video streaming
HTTP/2 standard for video streamingHTTP/2 standard for video streaming
HTTP/2 standard for video streaming
 
Http/2
Http/2Http/2
Http/2
 
So that was HTTP/2, what's next?
So that was HTTP/2, what's next?So that was HTTP/2, what's next?
So that was HTTP/2, what's next?
 
HTTP/2: What no one is telling you
HTTP/2: What no one is telling youHTTP/2: What no one is telling you
HTTP/2: What no one is telling you
 
SPDY - or maybe HTTP2.0
SPDY - or maybe HTTP2.0SPDY - or maybe HTTP2.0
SPDY - or maybe HTTP2.0
 
HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know?
 
Http2: why the web is upgrading? - bdx.io 2015
Http2: why the web is upgrading?   - bdx.io 2015Http2: why the web is upgrading?   - bdx.io 2015
Http2: why the web is upgrading? - bdx.io 2015
 

Viewers also liked

Internet all the things - curl everywhere!
Internet all the things - curl everywhere!Internet all the things - curl everywhere!
Internet all the things - curl everywhere!Daniel Stenberg
 
Everybody runs this code all the time
Everybody runs this code all the timeEverybody runs this code all the time
Everybody runs this code all the timeDaniel Stenberg
 
Contributing to Open Source
Contributing to Open SourceContributing to Open Source
Contributing to Open SourceDaniel Stenberg
 
Deep-dive into WSO2 ESB 5.0
Deep-dive into WSO2 ESB 5.0 Deep-dive into WSO2 ESB 5.0
Deep-dive into WSO2 ESB 5.0 Kasun Indrasiri
 
Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...
Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...
Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...Positive Hack Days
 
Introduction to gRPC - Mete Atamel - Codemotion Rome 2017
Introduction to gRPC - Mete Atamel - Codemotion Rome 2017Introduction to gRPC - Mete Atamel - Codemotion Rome 2017
Introduction to gRPC - Mete Atamel - Codemotion Rome 2017Codemotion
 
PubSub++ - Atmosphere 2015
PubSub++ - Atmosphere 2015PubSub++ - Atmosphere 2015
PubSub++ - Atmosphere 2015Krzysztof Debski
 
Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Containerd Donation to CNCF Cloud Native Conference Berlin 2017Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Containerd Donation to CNCF Cloud Native Conference Berlin 2017Patrick Chanezon
 
Reorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondReorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondKazuho Oku
 
Category theory for beginners
Category theory for beginnersCategory theory for beginners
Category theory for beginnerskenbot
 

Viewers also liked (13)

Internet all the things - curl everywhere!
Internet all the things - curl everywhere!Internet all the things - curl everywhere!
Internet all the things - curl everywhere!
 
Everybody runs this code all the time
Everybody runs this code all the timeEverybody runs this code all the time
Everybody runs this code all the time
 
Contributing to Open Source
Contributing to Open SourceContributing to Open Source
Contributing to Open Source
 
Introduction HTTP via cURL
Introduction HTTP via cURLIntroduction HTTP via cURL
Introduction HTTP via cURL
 
Indira Gandhi University , Meerpur Rewari Prospectus 2015-16
Indira Gandhi University , Meerpur Rewari Prospectus 2015-16Indira Gandhi University , Meerpur Rewari Prospectus 2015-16
Indira Gandhi University , Meerpur Rewari Prospectus 2015-16
 
Deep-dive into WSO2 ESB 5.0
Deep-dive into WSO2 ESB 5.0 Deep-dive into WSO2 ESB 5.0
Deep-dive into WSO2 ESB 5.0
 
Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...
Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...
Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...
 
HTTP/2入門
HTTP/2入門HTTP/2入門
HTTP/2入門
 
Introduction to gRPC - Mete Atamel - Codemotion Rome 2017
Introduction to gRPC - Mete Atamel - Codemotion Rome 2017Introduction to gRPC - Mete Atamel - Codemotion Rome 2017
Introduction to gRPC - Mete Atamel - Codemotion Rome 2017
 
PubSub++ - Atmosphere 2015
PubSub++ - Atmosphere 2015PubSub++ - Atmosphere 2015
PubSub++ - Atmosphere 2015
 
Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Containerd Donation to CNCF Cloud Native Conference Berlin 2017Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Containerd Donation to CNCF Cloud Native Conference Berlin 2017
 
Reorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondReorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and Beyond
 
Category theory for beginners
Category theory for beginnersCategory theory for beginners
Category theory for beginners
 

Similar to HTTP/2 - for TCP/IP Geeks Stockholm

Http 2: Should I care?
Http 2: Should I care?Http 2: Should I care?
Http 2: Should I care?LivePerson
 
Solving HTTP Problems with Code and Protocols
Solving HTTP Problems with Code and ProtocolsSolving HTTP Problems with Code and Protocols
Solving HTTP Problems with Code and ProtocolsC4Media
 
Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocolsDaniel Austin
 
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoHTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoAlessandro Nadalin
 
Meetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceJean Tunis
 
Google are pushing HTTPS hard. Why? And​,​ when should you act? by Mark Thoma...
Google are pushing HTTPS hard. Why? And​,​ when should you act? by Mark Thoma...Google are pushing HTTPS hard. Why? And​,​ when should you act? by Mark Thoma...
Google are pushing HTTPS hard. Why? And​,​ when should you act? by Mark Thoma...SEO monitor
 
The Case for HTTP/2 - Internetdagarna 2015 - Stockholm
The Case for HTTP/2  - Internetdagarna 2015 - StockholmThe Case for HTTP/2  - Internetdagarna 2015 - Stockholm
The Case for HTTP/2 - Internetdagarna 2015 - StockholmAndy Davies
 
2018 ui5con http2 ui5
2018 ui5con http2 ui5 2018 ui5con http2 ui5
2018 ui5con http2 ui5 TobiasSorn
 
Web Performance in the Age of HTTP/2 - FEDay Conference, Guangzhou, China 19/...
Web Performance in the Age of HTTP/2 - FEDay Conference, Guangzhou, China 19/...Web Performance in the Age of HTTP/2 - FEDay Conference, Guangzhou, China 19/...
Web Performance in the Age of HTTP/2 - FEDay Conference, Guangzhou, China 19/...Holger Bartel
 
Let’s push the assets to the front i.e. a few words about HTTP2
Let’s push the assets to the front i.e. a few words about HTTP2Let’s push the assets to the front i.e. a few words about HTTP2
Let’s push the assets to the front i.e. a few words about HTTP2OCoderFest
 
Progressive Web Apps - Intro and State of Market in Australia
Progressive Web Apps - Intro and State of Market in AustraliaProgressive Web Apps - Intro and State of Market in Australia
Progressive Web Apps - Intro and State of Market in AustraliaErudite
 
PageSpeed and SPDY
PageSpeed and SPDYPageSpeed and SPDY
PageSpeed and SPDYBlake Crosby
 
Why Embrace "Html5"?
Why Embrace "Html5"?Why Embrace "Html5"?
Why Embrace "Html5"?FossilDesigns
 
HTML5, CSS3 and the Future of the Web
HTML5, CSS3 and the Future of the WebHTML5, CSS3 and the Future of the Web
HTML5, CSS3 and the Future of the WebBerg Brandt
 

Similar to HTTP/2 - for TCP/IP Geeks Stockholm (20)

Http 2: Should I care?
Http 2: Should I care?Http 2: Should I care?
Http 2: Should I care?
 
Solving HTTP Problems with Code and Protocols
Solving HTTP Problems with Code and ProtocolsSolving HTTP Problems with Code and Protocols
Solving HTTP Problems with Code and Protocols
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
 
Html5
Html5Html5
Html5
 
Http 2
Http 2Http 2
Http 2
 
Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocols
 
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoHTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
 
Meetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web Performance
 
Google are pushing HTTPS hard. Why? And​,​ when should you act? by Mark Thoma...
Google are pushing HTTPS hard. Why? And​,​ when should you act? by Mark Thoma...Google are pushing HTTPS hard. Why? And​,​ when should you act? by Mark Thoma...
Google are pushing HTTPS hard. Why? And​,​ when should you act? by Mark Thoma...
 
The Case for HTTP/2 - Internetdagarna 2015 - Stockholm
The Case for HTTP/2  - Internetdagarna 2015 - StockholmThe Case for HTTP/2  - Internetdagarna 2015 - Stockholm
The Case for HTTP/2 - Internetdagarna 2015 - Stockholm
 
2018 ui5con http2 ui5
2018 ui5con http2 ui5 2018 ui5con http2 ui5
2018 ui5con http2 ui5
 
Tstat conext
Tstat conextTstat conext
Tstat conext
 
Web Performance in the Age of HTTP/2 - FEDay Conference, Guangzhou, China 19/...
Web Performance in the Age of HTTP/2 - FEDay Conference, Guangzhou, China 19/...Web Performance in the Age of HTTP/2 - FEDay Conference, Guangzhou, China 19/...
Web Performance in the Age of HTTP/2 - FEDay Conference, Guangzhou, China 19/...
 
Let’s push the assets to the front i.e. a few words about HTTP2
Let’s push the assets to the front i.e. a few words about HTTP2Let’s push the assets to the front i.e. a few words about HTTP2
Let’s push the assets to the front i.e. a few words about HTTP2
 
Progressive Web Apps - Intro and State of Market in Australia
Progressive Web Apps - Intro and State of Market in AustraliaProgressive Web Apps - Intro and State of Market in Australia
Progressive Web Apps - Intro and State of Market in Australia
 
PageSpeed and SPDY
PageSpeed and SPDYPageSpeed and SPDY
PageSpeed and SPDY
 
The beginnings of HTML5
The beginnings of HTML5The beginnings of HTML5
The beginnings of HTML5
 
Websockets
WebsocketsWebsockets
Websockets
 
Why Embrace "Html5"?
Why Embrace "Html5"?Why Embrace "Html5"?
Why Embrace "Html5"?
 
HTML5, CSS3 and the Future of the Web
HTML5, CSS3 and the Future of the WebHTML5, CSS3 and the Future of the Web
HTML5, CSS3 and the Future of the Web
 

More from Daniel Stenberg

More from Daniel Stenberg (20)

mastering libcurl part 2
mastering libcurl part 2mastering libcurl part 2
mastering libcurl part 2
 
mastering libcurl part 1
mastering libcurl part 1mastering libcurl part 1
mastering libcurl part 1
 
curl - openfourm europe.pdf
curl - openfourm europe.pdfcurl - openfourm europe.pdf
curl - openfourm europe.pdf
 
curl experiments - curl up 2022
curl experiments - curl up 2022curl experiments - curl up 2022
curl experiments - curl up 2022
 
curl security - curl up 2022
curl security - curl up 2022curl security - curl up 2022
curl security - curl up 2022
 
HTTP/3 in curl - curl up 2022
HTTP/3 in curl - curl up 2022HTTP/3 in curl - curl up 2022
HTTP/3 in curl - curl up 2022
 
The state of curl 2022
The state of curl 2022The state of curl 2022
The state of curl 2022
 
Let me tell you about curl
Let me tell you about curlLet me tell you about curl
Let me tell you about curl
 
Curl with rust
Curl with rustCurl with rust
Curl with rust
 
Getting started with libcurl
Getting started with libcurlGetting started with libcurl
Getting started with libcurl
 
HTTP/3 is next generation HTTP
HTTP/3 is next generation HTTPHTTP/3 is next generation HTTP
HTTP/3 is next generation HTTP
 
Landing code in curl
Landing code in curlLanding code in curl
Landing code in curl
 
Testing curl for security
Testing curl for securityTesting curl for security
Testing curl for security
 
common mistakes when using libcurl
common mistakes when using libcurlcommon mistakes when using libcurl
common mistakes when using libcurl
 
HTTP/3 in curl 2020
HTTP/3 in curl 2020HTTP/3 in curl 2020
HTTP/3 in curl 2020
 
The state of curl 2020
The state of curl 2020The state of curl 2020
The state of curl 2020
 
curl roadmap 2020
curl roadmap 2020curl roadmap 2020
curl roadmap 2020
 
curl better
curl bettercurl better
curl better
 
HTTP/3 for everyone
HTTP/3 for everyoneHTTP/3 for everyone
HTTP/3 for everyone
 
HTTP/3, QUIC and streaming
HTTP/3, QUIC and streamingHTTP/3, QUIC and streaming
HTTP/3, QUIC and streaming
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

HTTP/2 - for TCP/IP Geeks Stockholm

  • 2. Daniel Stenberg, May 6th 2015 HTTP Today HTTP/2 basics Status Future Q&A
  • 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. Daniel Stenberg, May 6th 2015 Please ask! … just maybe everything isn't crystal clear at once.
  • 5. Daniel Stenberg, May 6th 2015 Internet Today HTTP for everything The web has changed significantly since 1996
  • 6. Daniel Stenberg, May 6th 2015 Request and payload growth in 4 years... 7777 100100 725K725K 1900K1900K httparchive.org
  • 7. Daniel Stenberg, May 6th 2015 Roundtrip Bonanza
  • 8. Daniel Stenberg, May 6th 2015 connections per page 38 httparchive.org
  • 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. Daniel Stenberg, May 6th 2015 Head of line blocking
  • 11. Daniel Stenberg, May 6th 2015 HTTP 1.1 workarounds
  • 12. Daniel Stenberg, May 6th 2015 SpritingSpriting
  • 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. Daniel Stenberg, May 6th 2015 Concatenation $ cat *.js > single-monster.js
  • 15. Daniel Stenberg, May 6th 2015 Sharding
  • 16. Daniel Stenberg, May 6th 2015 Quirky Annoying for developers Adds layers of tools Hampers caching Downloads too much
  • 18. Daniel Stenberg, May 6th 2015 HTTP/2
  • 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. 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. Daniel Stenberg, May 6th 2015 Multiplexed (1/2) •Multiple streams over a single physical connection •Max number of parallel streams set by peer
  • 22. Daniel Stenberg, May 6th 2015 Multiplexed (2/2)
  • 23. Daniel Stenberg, May 6th 2015 Better utilization of bandwidth
  • 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. Daniel Stenberg, May 6th 2015 Streams Dynamic priority Flow control AA BB CC Dependencies
  • 26. Daniel Stenberg, May 6th 2015 Server push Give me HTML please! Here's HTML for you Here's CSS for you
  • 27. Daniel Stenberg, May 6th 2015 Stricter TLS TLS version 1.2+ only Stricter cipher suite requirements No renegotiations
  • 28. Daniel Stenberg, May 6th 2015 HTTP/2 is not Mandatory TLS Changing HTTP headers
  • 29. Daniel Stenberg, May 6th 2015 How will HTTP/2 affect users? Faster page loads More responsive loading More HTTPS
  • 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. 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. 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. 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. 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. Daniel Stenberg, May 6th 2015 Browser support http://caniuse.com/#feat=http2
  • 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. 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. 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. Daniel Stenberg, May 6th 2015 Thank you! See also http2 explained http://daniel.haxx.se/http2
  • 40. Daniel Stenberg, May 6th 2015 Doing good is part of our code
  • 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. 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/