SlideShare une entreprise Scribd logo
1  sur  54
Télécharger pour lire hors ligne
h2 turns 3
Felix Hassert
Director Software Development & Operations
Sevenval Technologies GmbH
#WebPerfCGN @ sevenval.com
Happy Birthday, HTTP/2!
A story of HTTP
● Problems
● Solutions
● New problems with solutions
● New solutions
● New new problems
● …
Back in the 90s – HTTP was the …
3% 97%
HTML
Now we have
Images/
Assets
HTTP wasbuilt for this
HTTP/1.*
wasn’t built for heavy media lifting
The Main Problem of HTTP/1:
Inefficient Use of TCP
● Connection handling (TCP Slow Start)
● Unidirectional messaging (head-of-line blocking)
Problem #1: TCP – Slow start
Short lived HTTP
connections end
up here
Warmed up TCP
connections with
full bandwidth
Problem #2: Head-of-line Blocking
One outstanding response per connection
No further requests on waiting connections
A lot of waiting
High costs
per request
HTTP/1 “Solutions”
Problem Solution
Short lived connections
suffering from TCP slow start
Connection Keep-Alive
HTTP head-of-line blocking 6 connections per host
Domain Sharding
(= more connections)
Requests are expensive Inlining
Concatenation & Sprites
New Problems
New Problems
● Web pages need a build system (Sprites, Bundles)
● Web pages need run-time handling (Inlining)
● Inlining vs Caching (repeated sends, critical path)
● Concat vs Caching (one change, all new)
● More domain names, more certificates, more link rewriting
● (No problem with keep-alive, though)
Serving a Web page
became complicated
for developers (not servers)
HTTP/2
is designed to shift complexity
from developers back to software
New solutions
for old problems
HTTP/2 solution
Bidirectional
Messaging &
Multiplexing
No head-of-line blocking
One connection per host
Mitigates TCP slow start
HPACK Reduces cost of requests
Bonus: Server Push Utilizes initial server think time
Multiplexing
Data of multiple responses may be mixed.
One connection is warmed up to bandwidth capacity.
HPACK // Header compression
● Requests become small & cheap
● Many requests fit in one TCP segment
● “Parallel” requests in one connection (not really)
● Saves RTT, especially for slow uploads (“ADSL”)
$ h2load --h1 https://example.test.stage.wao.io/ -n50
33.14KB headers // min 3 RTT
$ h2load https://example.test.stage.wao.io/ -n50
10.19KB headers (space savings 68.94%) // 1 RTT
h1 Requests h2 requests
6 conns
response
blocks next
request
1 conn
almost in
parallel
Obsolete “solutions”
● Multiple connections
● Domain Sharding
● Inlining
● Sprites
● Concat
○ (still compresses better)
Making a Web page
is easy again!
for developers
New new problems
We need TLS
● h2 is binary
● Avoid hops, bypass proxies
● Employ HTTPS everywhere
TLS Problems
● Certificates for every domain: buy (or automate Let’s
Encrypt)
● Make sure it is used! Redirects, HSTS
● Fix all mixed content (3rd party, too!): change URLs, use CSP
(This may be the major pain point when migrating to h2)
Request Bursts
● h1 HOL and 6 connections == “cooperative throttling”
● Without inlining/sprites/bundles -> even more requests
● Coming in at the same time
● Be prepared for 50+ simultaneous requests from one client
● Protect your application servers
● Employ a reverse proxy (e.g Varnish)
More Connection Problems
● Connections need a looooong life-time
● Packet loss severely impacts h2 (Slow start prob is back!)
● h2 is intended only for the last mile (client-end)
● De-couple TLS/h2 from application server
● Avoid TCP balancing h2
TCP head-of-line blocking
Bad TTFB?
No!
Downstream
connection is
blocked by images!
fast
connection
TCP head-of-line blocking
Load
Balancer
h2
Server
Client
slow
connection
Buffer BufferBuffer
empty always full blocked
TCP head-of-line blocking breaks Multiplexing
● Requests come in at once
with different priorities (CSS: highest, images: low)
● TCP Buffers are serialized: FIFOs
● The fastest responses fill up the buffer (Cache Hits)
● Important content may get delayed
TCP head-of-line blocking
Small delays in high
prio content cause
late interactivity
First responses from
varnish
h2 waterfalls are tricky to read
TTFB is the first byte
received by the client.
The server may have
sent it much earlier.
All responses were
generated in the
same second.
To multiplex or not to …?
● Most file formats are not usable while in-flight
● JS is executed after download
● CSS is applied after download
● Font is used after …
To multiplex or not to …
● Is multiplexing responses useless?
● No!
● Progressive JPEG is rendered in-flight!
○ Hello, Speed Index!
○ (There is no “progressive WebP”)
● Response Header Frames are often multiplexed
Multiplexed Response Header Frames
H1 H2 H3 D1 D1 D1 D1 D2 D2
Serialized Response Data Chunks
but no “parallel” download
fast TTFB (for assets) Server
h2 waterfalls are tricky to read
Response
header frames
are sent one
after another.
Data frames
are not
multiplexed.
h2 waterfalls are tricky to read
typical h1
shape
h1 shape
hiding in h2
● Multiplexing is bad
if data is only usable when complete (TTLB)
● Most servers tend not to multiplex
● Exception: h2o server multiplexes more!
● What about Progressive JPEG? :(
To multiplex or not to …
WebPageTest and h2
● SpeedIndex favors Multiplexing for JPEG hero images
● SpeedIndex favors Serializing for WebP heros (TTLB)
● FirstInteractive favors Multiplexing/ Prioritization JS before img
● Load Time favors Serializing
● Packet Loss favors HTTP/1 :)
● What metric do you want to fake today?
Experiment: Sleepy Images
● Image response delayed by 200ms (varnish)
● Let JS slip in before image payloads block the buffer
● Favors FirstInteractive over SpeedIndex
Experiment: Sleepy Images
Regular Sleepy images
Experiment: Sleepy Images
Regular
Sleepy images
…almost done
Takeaways
● Requests are cheap
● Bytes are still expensive (TCP HOL, Multiplexing Issues)
● Compress Images, lazy load
● Multiplexing needs work (from Browsers & Servers)
● TCP setup can be tricky (next solution: QUIC)
State of h2 Adoption
h2 Clients
● >95% on Desktop
● >77% Mobile
● >97% (Desktop & Mobile) in Germany :)
Source: https://caniuse.com/#search=http2
h2 Clients
h2 Servers
● h2o (1.0, 03/2015)
● nghttp2 (1.0, 05/2015)
● Nginx (1.9.5, 09/2015)
● Apache mod_http2 (2.4.17, 10/2015)
● Varnish + Hitch (5.0, 09/2016)
● haproxy (1.8, 11/2017)
● MS IIS (10.0, 11/2016)
● CDNs…
(19% of Domains)
Source: https://discuss.httparchive.org/t/http-2-adoption/792/16
38%
h2 Traffic
(70% of Page Views)
Source: wao.io Traffic Data (Kibana)
80%
h2 Traffic // Our servers
So, no reason not to use h2 :)
HTTP/2 turns 3: A story of progress and new challenges

Contenu connexe

Tendances

Interactive web. O rly?
Interactive web. O rly?Interactive web. O rly?
Interactive web. O rly?timbc
 
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
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1Daniel Austin
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsRonny López
 
Resource loading, prioritization, HTTP/2 - oh my!
Resource loading, prioritization, HTTP/2 - oh my!Resource loading, prioritization, HTTP/2 - oh my!
Resource loading, prioritization, HTTP/2 - oh my!Patrick Meenan
 
FileCatalyst January 2016 Webinar: TransferAgent is coming to FileCatalyst Wo...
FileCatalyst January 2016 Webinar: TransferAgent is coming to FileCatalyst Wo...FileCatalyst January 2016 Webinar: TransferAgent is coming to FileCatalyst Wo...
FileCatalyst January 2016 Webinar: TransferAgent is coming to FileCatalyst Wo...FileCatalyst
 
Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Mike Willbanks
 
RabbitMQ + CouchDB = Awesome
RabbitMQ + CouchDB = AwesomeRabbitMQ + CouchDB = Awesome
RabbitMQ + CouchDB = AwesomeLenz Gschwendtner
 
Architecture by Accident
Architecture by AccidentArchitecture by Accident
Architecture by AccidentGleicon Moraes
 
ActiveMQ In Action
ActiveMQ In ActionActiveMQ In Action
ActiveMQ In ActionBruce Snyder
 
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)Ericom Software
 
Enterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQEnterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQelliando dias
 
Load Balancing with Apache
Load Balancing with ApacheLoad Balancing with Apache
Load Balancing with ApacheBradley Holt
 
Altitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopAltitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopFastly
 

Tendances (20)

Interactive web. O rly?
Interactive web. O rly?Interactive web. O rly?
Interactive web. O rly?
 
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
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP Applications
 
Resource loading, prioritization, HTTP/2 - oh my!
Resource loading, prioritization, HTTP/2 - oh my!Resource loading, prioritization, HTTP/2 - oh my!
Resource loading, prioritization, HTTP/2 - oh my!
 
HTTP2 is Here!
HTTP2 is Here!HTTP2 is Here!
HTTP2 is Here!
 
Os Lamothe
Os LamotheOs Lamothe
Os Lamothe
 
Reintroducing Web Technology
Reintroducing Web TechnologyReintroducing Web Technology
Reintroducing Web Technology
 
[TW] Node.js
[TW] Node.js[TW] Node.js
[TW] Node.js
 
Ndp Slides
Ndp SlidesNdp Slides
Ndp Slides
 
FileCatalyst January 2016 Webinar: TransferAgent is coming to FileCatalyst Wo...
FileCatalyst January 2016 Webinar: TransferAgent is coming to FileCatalyst Wo...FileCatalyst January 2016 Webinar: TransferAgent is coming to FileCatalyst Wo...
FileCatalyst January 2016 Webinar: TransferAgent is coming to FileCatalyst Wo...
 
Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012
 
RabbitMQ + CouchDB = Awesome
RabbitMQ + CouchDB = AwesomeRabbitMQ + CouchDB = Awesome
RabbitMQ + CouchDB = Awesome
 
Architecture by Accident
Architecture by AccidentArchitecture by Accident
Architecture by Accident
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
 
ActiveMQ In Action
ActiveMQ In ActionActiveMQ In Action
ActiveMQ In Action
 
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
 
Enterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQEnterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQ
 
Load Balancing with Apache
Load Balancing with ApacheLoad Balancing with Apache
Load Balancing with Apache
 
Altitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopAltitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly Workshop
 

Similaire à HTTP/2 turns 3: A story of progress and new challenges

Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocolsDaniel Austin
 
HTTP at your local BigCo
HTTP at your local BigCoHTTP at your local BigCo
HTTP at your local BigCopgriess
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2Ido Flatow
 
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017Codemotion
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebSteffen Gebert
 
Fscons future transports
Fscons future transportsFscons future transports
Fscons future transportsDaniel Stenberg
 
ECS19 - Ingo Gegenwarth - Running Exchange in large environment
ECS19 - Ingo Gegenwarth -  Running Exchangein large environmentECS19 - Ingo Gegenwarth -  Running Exchangein large environment
ECS19 - Ingo Gegenwarth - Running Exchange in large environmentEuropean Collaboration Summit
 
Massively Scaled High Performance Web Services with PHP
Massively Scaled High Performance Web Services with PHPMassively Scaled High Performance Web Services with PHP
Massively Scaled High Performance Web Services with PHPDemin Yin
 
Dumb Ways To Die: How Not To Write TCP-based Network Applications
Dumb Ways To Die: How Not To Write TCP-based Network ApplicationsDumb Ways To Die: How Not To Write TCP-based Network Applications
Dumb Ways To Die: How Not To Write TCP-based Network ApplicationsHLL
 
stackconf 2023 | How the Network Protocols You Choose Ultimately Affect Your ...
stackconf 2023 | How the Network Protocols You Choose Ultimately Affect Your ...stackconf 2023 | How the Network Protocols You Choose Ultimately Affect Your ...
stackconf 2023 | How the Network Protocols You Choose Ultimately Affect Your ...NETWAYS
 
SPDY and What to Consider for HTTP/2.0
SPDY and What to Consider for HTTP/2.0SPDY and What to Consider for HTTP/2.0
SPDY and What to Consider for HTTP/2.0Mike Belshe
 
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
 
Type URL, Enter, and Then …
Type URL, Enter, and Then …Type URL, Enter, and Then …
Type URL, Enter, and Then …Jinglun Li
 
In a HTTP/2 World - DeccanRubyConf 2017
In a HTTP/2 World - DeccanRubyConf 2017In a HTTP/2 World - DeccanRubyConf 2017
In a HTTP/2 World - DeccanRubyConf 2017Douglas Vaz
 

Similaire à HTTP/2 turns 3: A story of progress and new challenges (20)

SPDY Talk
SPDY TalkSPDY Talk
SPDY Talk
 
Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocols
 
HTTP at your local BigCo
HTTP at your local BigCoHTTP at your local BigCo
HTTP at your local BigCo
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
 
SPDY
SPDYSPDY
SPDY
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
 
Fscons future transports
Fscons future transportsFscons future transports
Fscons future transports
 
Http/2
Http/2Http/2
Http/2
 
SPDY
SPDYSPDY
SPDY
 
ECS19 - Ingo Gegenwarth - Running Exchange in large environment
ECS19 - Ingo Gegenwarth -  Running Exchangein large environmentECS19 - Ingo Gegenwarth -  Running Exchangein large environment
ECS19 - Ingo Gegenwarth - Running Exchange in large environment
 
Massively Scaled High Performance Web Services with PHP
Massively Scaled High Performance Web Services with PHPMassively Scaled High Performance Web Services with PHP
Massively Scaled High Performance Web Services with PHP
 
Dumb Ways To Die: How Not To Write TCP-based Network Applications
Dumb Ways To Die: How Not To Write TCP-based Network ApplicationsDumb Ways To Die: How Not To Write TCP-based Network Applications
Dumb Ways To Die: How Not To Write TCP-based Network Applications
 
stackconf 2023 | How the Network Protocols You Choose Ultimately Affect Your ...
stackconf 2023 | How the Network Protocols You Choose Ultimately Affect Your ...stackconf 2023 | How the Network Protocols You Choose Ultimately Affect Your ...
stackconf 2023 | How the Network Protocols You Choose Ultimately Affect Your ...
 
SPDY and What to Consider for HTTP/2.0
SPDY and What to Consider for HTTP/2.0SPDY and What to Consider for HTTP/2.0
SPDY and What to Consider for HTTP/2.0
 
SPDY - or maybe HTTP2.0
SPDY - or maybe HTTP2.0SPDY - or maybe HTTP2.0
SPDY - or maybe HTTP2.0
 
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
 
Type URL, Enter, and Then …
Type URL, Enter, and Then …Type URL, Enter, and Then …
Type URL, Enter, and Then …
 
computer networking
computer networkingcomputer networking
computer networking
 
In a HTTP/2 World - DeccanRubyConf 2017
In a HTTP/2 World - DeccanRubyConf 2017In a HTTP/2 World - DeccanRubyConf 2017
In a HTTP/2 World - DeccanRubyConf 2017
 

Plus de Avenga Germany GmbH

Sevenval Company Presentation 2017 (EN)
Sevenval Company Presentation 2017 (EN)Sevenval Company Presentation 2017 (EN)
Sevenval Company Presentation 2017 (EN)Avenga Germany GmbH
 
Sevenval Company Presentation 2017 (DE)
Sevenval Company Presentation 2017 (DE)Sevenval Company Presentation 2017 (DE)
Sevenval Company Presentation 2017 (DE)Avenga Germany GmbH
 
2015 sevenval mobile-trends_september
2015 sevenval mobile-trends_september2015 sevenval mobile-trends_september
2015 sevenval mobile-trends_septemberAvenga Germany GmbH
 
2015 sevenval mobile-trends_september
2015 sevenval mobile-trends_september2015 sevenval mobile-trends_september
2015 sevenval mobile-trends_septemberAvenga Germany GmbH
 
2015 sevenval device-trends_august
2015 sevenval device-trends_august2015 sevenval device-trends_august
2015 sevenval device-trends_augustAvenga Germany GmbH
 
2015 sevenval device-trends-july
2015 sevenval device-trends-july2015 sevenval device-trends-july
2015 sevenval device-trends-julyAvenga Germany GmbH
 
2015 sevenval device-trends-june
2015 sevenval device-trends-june2015 sevenval device-trends-june
2015 sevenval device-trends-juneAvenga Germany GmbH
 
sevenval device Trends may 2015
sevenval device Trends may 2015 sevenval device Trends may 2015
sevenval device Trends may 2015 Avenga Germany GmbH
 
Mobile Monday Austria 20150601 mobilegeddon
Mobile Monday Austria 20150601 mobilegeddonMobile Monday Austria 20150601 mobilegeddon
Mobile Monday Austria 20150601 mobilegeddonAvenga Germany GmbH
 
2015 sevenval device-trends-april
2015 sevenval device-trends-april2015 sevenval device-trends-april
2015 sevenval device-trends-aprilAvenga Germany GmbH
 
2015 sevenval device-trends-march
2015 sevenval device-trends-march2015 sevenval device-trends-march
2015 sevenval device-trends-marchAvenga Germany GmbH
 
Sevenval_device_trends-january2015
Sevenval_device_trends-january2015Sevenval_device_trends-january2015
Sevenval_device_trends-january2015Avenga Germany GmbH
 
Sevenval_device_trends-january2015
Sevenval_device_trends-january2015Sevenval_device_trends-january2015
Sevenval_device_trends-january2015Avenga Germany GmbH
 
20152601 sevenval_device_trends_dezc
20152601  sevenval_device_trends_dezc20152601  sevenval_device_trends_dezc
20152601 sevenval_device_trends_dezcAvenga Germany GmbH
 
Sevenval Device Trends November 2014
Sevenval Device Trends November 2014Sevenval Device Trends November 2014
Sevenval Device Trends November 2014Avenga Germany GmbH
 
2014 09 device_trends sevenval-1
2014 09 device_trends sevenval-12014 09 device_trends sevenval-1
2014 09 device_trends sevenval-1Avenga Germany GmbH
 
1400710 sevenva device_trends_2014
1400710 sevenva device_trends_20141400710 sevenva device_trends_2014
1400710 sevenva device_trends_2014Avenga Germany GmbH
 

Plus de Avenga Germany GmbH (20)

Sevenval Company Presentation 2017 (EN)
Sevenval Company Presentation 2017 (EN)Sevenval Company Presentation 2017 (EN)
Sevenval Company Presentation 2017 (EN)
 
Sevenval Company Presentation 2017 (DE)
Sevenval Company Presentation 2017 (DE)Sevenval Company Presentation 2017 (DE)
Sevenval Company Presentation 2017 (DE)
 
2015 sevenval mobile-trends_september
2015 sevenval mobile-trends_september2015 sevenval mobile-trends_september
2015 sevenval mobile-trends_september
 
2015 sevenval mobile-trends_september
2015 sevenval mobile-trends_september2015 sevenval mobile-trends_september
2015 sevenval mobile-trends_september
 
2015 sevenval device-trends_august
2015 sevenval device-trends_august2015 sevenval device-trends_august
2015 sevenval device-trends_august
 
2015 sevenval device-trends-july
2015 sevenval device-trends-july2015 sevenval device-trends-july
2015 sevenval device-trends-july
 
2015 sevenval device-trends-june
2015 sevenval device-trends-june2015 sevenval device-trends-june
2015 sevenval device-trends-june
 
sevenval device Trends may 2015
sevenval device Trends may 2015 sevenval device Trends may 2015
sevenval device Trends may 2015
 
Mobile Monday Austria 20150601 mobilegeddon
Mobile Monday Austria 20150601 mobilegeddonMobile Monday Austria 20150601 mobilegeddon
Mobile Monday Austria 20150601 mobilegeddon
 
2015 sevenval device-trends-april
2015 sevenval device-trends-april2015 sevenval device-trends-april
2015 sevenval device-trends-april
 
2015 sevenval device-trends-march
2015 sevenval device-trends-march2015 sevenval device-trends-march
2015 sevenval device-trends-march
 
2015 sevenval device-trends-feb
2015 sevenval device-trends-feb2015 sevenval device-trends-feb
2015 sevenval device-trends-feb
 
Sevenval_device_trends-january2015
Sevenval_device_trends-january2015Sevenval_device_trends-january2015
Sevenval_device_trends-january2015
 
Sevenval_device_trends-january2015
Sevenval_device_trends-january2015Sevenval_device_trends-january2015
Sevenval_device_trends-january2015
 
20152601 sevenval_device_trends_dezc
20152601  sevenval_device_trends_dezc20152601  sevenval_device_trends_dezc
20152601 sevenval_device_trends_dezc
 
Sevenval Device Trends November 2014
Sevenval Device Trends November 2014Sevenval Device Trends November 2014
Sevenval Device Trends November 2014
 
2014 09 device_trends sevenval-1
2014 09 device_trends sevenval-12014 09 device_trends sevenval-1
2014 09 device_trends sevenval-1
 
1400710 sevenva device_trends_2014
1400710 sevenva device_trends_20141400710 sevenva device_trends_2014
1400710 sevenva device_trends_2014
 
100607 device trends_2014-2
100607 device trends_2014-2100607 device trends_2014-2
100607 device trends_2014-2
 
Device Trends January 2014
Device Trends January 2014Device Trends January 2014
Device Trends January 2014
 

Dernier

10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.soniya singh
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...sonatiwari757
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLimonikaupta
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...Neha Pandey
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663Call Girls Mumbai
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 

Dernier (20)

10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 

HTTP/2 turns 3: A story of progress and new challenges

  • 1. h2 turns 3 Felix Hassert Director Software Development & Operations Sevenval Technologies GmbH #WebPerfCGN @ sevenval.com Happy Birthday, HTTP/2!
  • 2. A story of HTTP ● Problems ● Solutions ● New problems with solutions ● New solutions ● New new problems ● …
  • 3. Back in the 90s – HTTP was the …
  • 4. 3% 97% HTML Now we have Images/ Assets HTTP wasbuilt for this
  • 5.
  • 6. HTTP/1.* wasn’t built for heavy media lifting
  • 7. The Main Problem of HTTP/1: Inefficient Use of TCP
  • 8. ● Connection handling (TCP Slow Start) ● Unidirectional messaging (head-of-line blocking)
  • 9. Problem #1: TCP – Slow start Short lived HTTP connections end up here Warmed up TCP connections with full bandwidth
  • 10. Problem #2: Head-of-line Blocking One outstanding response per connection No further requests on waiting connections
  • 11. A lot of waiting High costs per request
  • 13. Problem Solution Short lived connections suffering from TCP slow start Connection Keep-Alive HTTP head-of-line blocking 6 connections per host Domain Sharding (= more connections) Requests are expensive Inlining Concatenation & Sprites
  • 15. New Problems ● Web pages need a build system (Sprites, Bundles) ● Web pages need run-time handling (Inlining) ● Inlining vs Caching (repeated sends, critical path) ● Concat vs Caching (one change, all new) ● More domain names, more certificates, more link rewriting ● (No problem with keep-alive, though)
  • 16. Serving a Web page became complicated for developers (not servers)
  • 17. HTTP/2 is designed to shift complexity from developers back to software
  • 19. HTTP/2 solution Bidirectional Messaging & Multiplexing No head-of-line blocking One connection per host Mitigates TCP slow start HPACK Reduces cost of requests Bonus: Server Push Utilizes initial server think time
  • 20. Multiplexing Data of multiple responses may be mixed. One connection is warmed up to bandwidth capacity.
  • 21. HPACK // Header compression ● Requests become small & cheap ● Many requests fit in one TCP segment ● “Parallel” requests in one connection (not really) ● Saves RTT, especially for slow uploads (“ADSL”) $ h2load --h1 https://example.test.stage.wao.io/ -n50 33.14KB headers // min 3 RTT $ h2load https://example.test.stage.wao.io/ -n50 10.19KB headers (space savings 68.94%) // 1 RTT
  • 22. h1 Requests h2 requests 6 conns response blocks next request 1 conn almost in parallel
  • 23. Obsolete “solutions” ● Multiple connections ● Domain Sharding ● Inlining ● Sprites ● Concat ○ (still compresses better)
  • 24. Making a Web page is easy again! for developers
  • 26. We need TLS ● h2 is binary ● Avoid hops, bypass proxies ● Employ HTTPS everywhere
  • 27. TLS Problems ● Certificates for every domain: buy (or automate Let’s Encrypt) ● Make sure it is used! Redirects, HSTS ● Fix all mixed content (3rd party, too!): change URLs, use CSP (This may be the major pain point when migrating to h2)
  • 28. Request Bursts ● h1 HOL and 6 connections == “cooperative throttling” ● Without inlining/sprites/bundles -> even more requests ● Coming in at the same time ● Be prepared for 50+ simultaneous requests from one client ● Protect your application servers ● Employ a reverse proxy (e.g Varnish)
  • 29. More Connection Problems ● Connections need a looooong life-time ● Packet loss severely impacts h2 (Slow start prob is back!) ● h2 is intended only for the last mile (client-end) ● De-couple TLS/h2 from application server ● Avoid TCP balancing h2
  • 30. TCP head-of-line blocking Bad TTFB? No! Downstream connection is blocked by images!
  • 32. TCP head-of-line blocking breaks Multiplexing ● Requests come in at once with different priorities (CSS: highest, images: low) ● TCP Buffers are serialized: FIFOs ● The fastest responses fill up the buffer (Cache Hits) ● Important content may get delayed
  • 33. TCP head-of-line blocking Small delays in high prio content cause late interactivity First responses from varnish
  • 34. h2 waterfalls are tricky to read TTFB is the first byte received by the client. The server may have sent it much earlier. All responses were generated in the same second.
  • 35. To multiplex or not to …? ● Most file formats are not usable while in-flight ● JS is executed after download ● CSS is applied after download ● Font is used after …
  • 36. To multiplex or not to … ● Is multiplexing responses useless? ● No! ● Progressive JPEG is rendered in-flight! ○ Hello, Speed Index! ○ (There is no “progressive WebP”) ● Response Header Frames are often multiplexed
  • 37. Multiplexed Response Header Frames H1 H2 H3 D1 D1 D1 D1 D2 D2 Serialized Response Data Chunks but no “parallel” download fast TTFB (for assets) Server
  • 38. h2 waterfalls are tricky to read Response header frames are sent one after another. Data frames are not multiplexed.
  • 39. h2 waterfalls are tricky to read typical h1 shape h1 shape hiding in h2
  • 40. ● Multiplexing is bad if data is only usable when complete (TTLB) ● Most servers tend not to multiplex ● Exception: h2o server multiplexes more! ● What about Progressive JPEG? :( To multiplex or not to …
  • 41. WebPageTest and h2 ● SpeedIndex favors Multiplexing for JPEG hero images ● SpeedIndex favors Serializing for WebP heros (TTLB) ● FirstInteractive favors Multiplexing/ Prioritization JS before img ● Load Time favors Serializing ● Packet Loss favors HTTP/1 :) ● What metric do you want to fake today?
  • 42. Experiment: Sleepy Images ● Image response delayed by 200ms (varnish) ● Let JS slip in before image payloads block the buffer ● Favors FirstInteractive over SpeedIndex
  • 46. Takeaways ● Requests are cheap ● Bytes are still expensive (TCP HOL, Multiplexing Issues) ● Compress Images, lazy load ● Multiplexing needs work (from Browsers & Servers) ● TCP setup can be tricky (next solution: QUIC)
  • 47. State of h2 Adoption
  • 48. h2 Clients ● >95% on Desktop ● >77% Mobile ● >97% (Desktop & Mobile) in Germany :) Source: https://caniuse.com/#search=http2
  • 50. h2 Servers ● h2o (1.0, 03/2015) ● nghttp2 (1.0, 05/2015) ● Nginx (1.9.5, 09/2015) ● Apache mod_http2 (2.4.17, 10/2015) ● Varnish + Hitch (5.0, 09/2016) ● haproxy (1.8, 11/2017) ● MS IIS (10.0, 11/2016) ● CDNs…
  • 51. (19% of Domains) Source: https://discuss.httparchive.org/t/http-2-adoption/792/16 38% h2 Traffic
  • 52. (70% of Page Views) Source: wao.io Traffic Data (Kibana) 80% h2 Traffic // Our servers
  • 53. So, no reason not to use h2 :)