SlideShare a Scribd company logo
1 of 54
Download to read offline
What HTTP/2.0 will*
        TO
      __
    do for you
      Mark Nottingham
    http://www.mnot.net/
          or, @mnot
*
forward-looking statement
            ___ statement based on
           TECHNICA
                    L
A projected financial
management expectations. A forward-
looking statement involves risks with
regard to the accuracy of assumptions
underlying the projections.
Discussions of these statements typically
include words such as estimate,
anticipate, project, and believe.
1. Some recent history
IETF HTTPbis WG
WHAT? to clarify RFC2616 and improve interop
WHO? Roy Fielding, Julian Reschke
WHO (2)? Apache, Mozilla, Chrome, IIS, Varnish,
Squid, F5, Curl, ATS, IE, HAProxy...
WHEN: Almost finished!
WHEN (2): ... after FIVE YEARS :(
IETF HTTPbis WG (2)
STRICTLY chartered to avoid making a new
version of the protocol.


Because EVERYBODY knows that’s not going
to happen.
MEANWHILE
November 2009: Mike Belshe and Roberto Peon announce SPDY

March 2011: Mike talks about SPDY to the HTTPbis WG at IETF80

~April 2011: Chrome, Google start using SPDY

March 2012: HTTPbis solicits proposals for new protocol work

March 2012: Firefox 11 ships with SPDY (off by default)

May 2012: Netcraft finds 339 servers that support SPDY

June 2012: Nginx announces SPDY implementation

July 2012: Akamai announces SPDY implementation

Tuesday: HTTPbis re-chartered to work on HTTP/2.0, based on SPDY
2. What is it?
NO change to HTTP semantics; it’s
 about how it gets onto the wire
Nothing new
 to see here
Not magic
1.multiplexing

2.header compression

3.server push (?)

4.TLS (?)
2.1 multiplexing
connection setup

                                     vanilla



                            server
client




             GE
                T   /foo
                                     HTTP/1.0
                                     One request
                      K
              200
                  O
                                     per TCP connection

         connection close




         OMG ITS SO SLOW
GE
   T   /foo




     O   K
 200
               HTTP/1.0
               (with Keep-Alive)
GE
   T   /ba
           r


               able to reuse
               connections, avoid
               connection setup
     O   K
 200




GE
   T   /ba
           z
GE
   T   /foo




     O   K
 200
               BUT
               it still blocks
GE
   T   /ba
           r




               one outstanding
               request at a time
     O   K
 200




GE
   T   /ba
           z
GE
   T   /foo
GE
   T   /ba
           r
GE
   T   /ba
           z

     O   K
 200

 200
     O   K
               HTTP/1.1
       OK
 200           (with pipelining)


               multiple, ordered
               requests
GE
   T   /foo
GE
   T   /ba
           r




               head-of-line
               blocking

       OK
 200           Still serialised!
          K
 2 00
      O
               Large downloads /
               long “think” time can
               block other requests
The State of the Art
• Use persistent connections (“keep-alives”)
• Pipelining is getting a little deployment
• Use multiple connections for parallelism
  • RFC2616 said “2”; HTTPbis says “reasonable”
  • Browsers use 4-8; bad people use more
• Build lots of heuristics into browsers for
  connection reuse
• Hope that it all works out
What’s so bad about that?
• TCP is built for long-lived flows
  • More connections = shorter flows
  • Congestion control doesn’t have time to ramp up
  • Makes Buffer Bloat worse
• Fairness (user to user, app to app)
• How many connections is the best?
four at a time




cascading waterfalls
GE
   T   /foo



GE
   T   /ba
           r
          K
 2
GE
   00

   T
      O


       /ba
                   SPDY
 2 00
      O   K
           z
                   multiplexing
 GE
    T  /a
               •   one connection
 20   0O
         K
               •   many requests
               •   prioritisation
 GE
    T   /b
               •   out of order
        OK
 20   0
               •   interleaved

 GE
    T   /c
                   NO* QUEUING
      0 OK
 20
2.2 header compression
GET / HTTP/1.1
Host: www.etsy.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.14
(KHTML, like Gecko) Version/6.0.1 Safari/536.26.14
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
DNT: 1
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Cookie: uaid=uaid%3DVdhk5W6sexG-_Y7ZBeQFa3cq7yMQ%26_now%3D1325204464%26_slt
%3Ds_LCLVpU%26_kid%3D1%26_ver%3D1%26_mac
%3DlVnlM3hMdb3Cs3hqMVuk_dQEixsqQzUlNYCs9H_Kj8c.;
user_prefs=1&2596706699&q0tPzMlJLaoEAA==
Connection: keep-alive




                                525 bytes
GET /assets/dist/js/etsy.recent-searches.20121001205006.js HTTP/1.1
Host: www.etsy.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.14
(KHTML, like Gecko) Version/6.0.1 Safari/536.26.14
Accept: */*
DNT: 1
Referer: http://www.etsy.com/
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Cookie: autosuggest_split=1;
etala=111461200.1476767743.1349274889.1349274889.1349274889.1.0;
etalb=111461200.1.10.1349274889; last_browse_page=%2F; uaid=uaid%3DVdhk5W6sexG-
_Y7ZBeQFa3cq7yMQ%26_now%3D1325204464%26_slt%3Ds_LCLVpU%26_kid%3D1%26_ver%3D1%26_mac
%3DlVnlM3hMdb3Cs3hqMVuk_dQEixsqQzUlNYCs9H_Kj8c.;
user_prefs=1&2596706699&q0tPzMlJLaoEAA==
Connection: keep-alive




                   226 new bytes; 690 total
GET /assets/dist/js/jquery.appear.20121001205006.js HTTP/1.1
Host: www.etsy.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.14
(KHTML, like Gecko) Version/6.0.1 Safari/536.26.14
Accept: */*
DNT: 1
Referer: http://www.etsy.com/
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Cookie: autosuggest_split=1;
etala=111461200.1476767743.1349274889.1349274889.1349274889.1.0;
etalb=111461200.1.10.1349274889; last_browse_page=%2F; uaid=uaid%3DVdhk5W6sexG-
_Y7ZBeQFa3cq7yMQ%26_now%3D1325204464%26_slt%3Ds_LCLVpU%26_kid%3D1%26_ver%3D1%26_mac
%3DlVnlM3hMdb3Cs3hqMVuk_dQEixsqQzUlNYCs9H_Kj8c.;
user_prefs=1&2596706699&q0tPzMlJLaoEAA==
Connection: keep-alive




                    14 new bytes; 683 total
GET /assets/dist/js/bootstrap/username-suggester.20121001205006.js HTTP/1.1
Host: www.etsy.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.14
(KHTML, like Gecko) Version/6.0.1 Safari/536.26.14
Accept: */*
DNT: 1
Referer: http://www.etsy.com/
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Cookie: autosuggest_split=1;
etala=111461200.1476767743.1349274889.1349274889.1349274889.1.0;
etalb=111461200.1.10.1349274889; last_browse_page=%2F; uaid=uaid%3DVdhk5W6sexG-
_Y7ZBeQFa3cq7yMQ%26_now%3D1325204464%26_slt%3Ds_LCLVpU%26_kid%3D1%26_ver%3D1%26_mac
%3DlVnlM3hMdb3Cs3hqMVuk_dQEixsqQzUlNYCs9H_Kj8c.;
user_prefs=1&2596706699&q0tPzMlJLaoEAA==
Connection: keep-alive




                    28 new bytes; 698 total
• Four requests

• 2,596 bytes total

• Minimum three packets in most places

 • One for the HTML, two+ for assets

• 1,797 redundant bytes
HTTP headers on a
 connection are
  highly similar
Request URI

User-Agent

Cookies

Referer
Big req * many reqs / small IW = SLOW
  • Patrick’s test:
    • 83 asset requests
    • IW = 3
    • ~1400 bytes of headers
  • Uncompressed: 7-8RT
  • Compressed (zlib): 1RT
2.3 server push (?)
2.4 TLS?
3. What does it all mean?
HTTP/2.0 is going to
change Web Engineering...
... but not change
HTTP APIs. Much.
Leaky Abstractions
Reduce Requests
• Image spriting - not necessary

• CSS / JS can be in multiple files

• HTTP APIs can be finer-grained without
  sacrificing performance

• Third party content is an even bigger
  problem
Domain Sharding
• Multiplexing SHOULD make multiple
  connections unnecessary

• Key is to get the TCP connection
  “warm” as quickly as possible, and
  keep it there
Header Optimisation
• Now, adding new headers is easy

 • Very small performance / latency /
   bandwidth impact

• What should be in headers can be in
  headers

• Content Negotiation might become
  interesting again
Predictability
Better Error
 Handling
Debugging will
  need Tools
Lots of tweaking
   • Prioritisation
   • When to Push
   • Flow Control
Transition Decisions
• De-sharding
• De-combining scripts
• De-spriting
• etc.
Guess
 what,
Steve?
         Absurdly Fast
         Web Sites. Fast.
4. What’s still wrong
4.1 Security is hard
4.2 TCP is awkward
• In-order delivery = head-of-line blocking
• Initial congestion window is small
• Packet loss isn’t handled well
HTTP as the
“Everything Protocol”
          ?
Some Links

http://bit.ly/httpbis-home

http://www.chromium.org/spdy

http://www.mnot.net/

More Related Content

What's hot

Anteproyecto de grado para optar el titulo de ingeniero de sistemas(ankore)
Anteproyecto de grado para optar el titulo de ingeniero de sistemas(ankore)Anteproyecto de grado para optar el titulo de ingeniero de sistemas(ankore)
Anteproyecto de grado para optar el titulo de ingeniero de sistemas(ankore)Gustavo Diaz
 
Entidad, Llave primaria, llave foranea
Entidad, Llave primaria, llave foraneaEntidad, Llave primaria, llave foranea
Entidad, Llave primaria, llave foranealinis129
 
Mineria de datos en weka
Mineria de datos en wekaMineria de datos en weka
Mineria de datos en wekaUri Mon
 
Ciclo de vida del servicio itil (operación del servicio-)
Ciclo de vida del servicio   itil  (operación del servicio-)Ciclo de vida del servicio   itil  (operación del servicio-)
Ciclo de vida del servicio itil (operación del servicio-)jr_palaciosg
 
Mecanismo de sincronización de procesos
Mecanismo de sincronización de procesosMecanismo de sincronización de procesos
Mecanismo de sincronización de procesosjulio izaguirre
 
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniPrototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniRAUL CHIPANA LARICO
 
Cuadro comparativo analis y diseño estructurado Y analisis orientado a objetos
Cuadro comparativo analis y diseño estructurado Y analisis orientado a objetosCuadro comparativo analis y diseño estructurado Y analisis orientado a objetos
Cuadro comparativo analis y diseño estructurado Y analisis orientado a objetosemilis
 
7 Elementos cruciales para la Gestión de servicios de TI
7 Elementos cruciales para la Gestión de servicios de TI7 Elementos cruciales para la Gestión de servicios de TI
7 Elementos cruciales para la Gestión de servicios de TISistemas Integrados de Gestión
 
2.2 tecnicas de ingenieria de requisitos
2.2 tecnicas de ingenieria de requisitos2.2 tecnicas de ingenieria de requisitos
2.2 tecnicas de ingenieria de requisitosSelins Cassiel
 
Seguridad en Base de Datos
Seguridad en Base de DatosSeguridad en Base de Datos
Seguridad en Base de Datosmyriam sarango
 
Libro ISO 20000 Telefonica 65 pag muestra
Libro ISO 20000 Telefonica 65 pag muestraLibro ISO 20000 Telefonica 65 pag muestra
Libro ISO 20000 Telefonica 65 pag muestraLuis Moran Abad
 
Ventajas y desventajas de itil
Ventajas y desventajas de itilVentajas y desventajas de itil
Ventajas y desventajas de itilNena Patraca
 
Preguntas sobre los sistemas de informacion
Preguntas  sobre los  sistemas de informacionPreguntas  sobre los  sistemas de informacion
Preguntas sobre los sistemas de informacionYajaira Hernandez
 
enfoque-practico-mario-piattini
enfoque-practico-mario-piattinienfoque-practico-mario-piattini
enfoque-practico-mario-piattiniJorge Amigo
 

What's hot (20)

Anteproyecto de grado para optar el titulo de ingeniero de sistemas(ankore)
Anteproyecto de grado para optar el titulo de ingeniero de sistemas(ankore)Anteproyecto de grado para optar el titulo de ingeniero de sistemas(ankore)
Anteproyecto de grado para optar el titulo de ingeniero de sistemas(ankore)
 
Estructuras de hardware y de control.
Estructuras de hardware y de control.Estructuras de hardware y de control.
Estructuras de hardware y de control.
 
Sistema de administración de proyectos tecnológicos.
Sistema de administración de proyectos tecnológicos.Sistema de administración de proyectos tecnológicos.
Sistema de administración de proyectos tecnológicos.
 
Entidad, Llave primaria, llave foranea
Entidad, Llave primaria, llave foraneaEntidad, Llave primaria, llave foranea
Entidad, Llave primaria, llave foranea
 
Mineria de datos en weka
Mineria de datos en wekaMineria de datos en weka
Mineria de datos en weka
 
Ciclo de vida del servicio itil (operación del servicio-)
Ciclo de vida del servicio   itil  (operación del servicio-)Ciclo de vida del servicio   itil  (operación del servicio-)
Ciclo de vida del servicio itil (operación del servicio-)
 
Mecanismo de sincronización de procesos
Mecanismo de sincronización de procesosMecanismo de sincronización de procesos
Mecanismo de sincronización de procesos
 
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniPrototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
 
Cuadro comparativo analis y diseño estructurado Y analisis orientado a objetos
Cuadro comparativo analis y diseño estructurado Y analisis orientado a objetosCuadro comparativo analis y diseño estructurado Y analisis orientado a objetos
Cuadro comparativo analis y diseño estructurado Y analisis orientado a objetos
 
7 Elementos cruciales para la Gestión de servicios de TI
7 Elementos cruciales para la Gestión de servicios de TI7 Elementos cruciales para la Gestión de servicios de TI
7 Elementos cruciales para la Gestión de servicios de TI
 
2.2 tecnicas de ingenieria de requisitos
2.2 tecnicas de ingenieria de requisitos2.2 tecnicas de ingenieria de requisitos
2.2 tecnicas de ingenieria de requisitos
 
Seguridad en Base de Datos
Seguridad en Base de DatosSeguridad en Base de Datos
Seguridad en Base de Datos
 
Libro ISO 20000 Telefonica 65 pag muestra
Libro ISO 20000 Telefonica 65 pag muestraLibro ISO 20000 Telefonica 65 pag muestra
Libro ISO 20000 Telefonica 65 pag muestra
 
Ventajas y desventajas de itil
Ventajas y desventajas de itilVentajas y desventajas de itil
Ventajas y desventajas de itil
 
Preguntas sobre los sistemas de informacion
Preguntas  sobre los  sistemas de informacionPreguntas  sobre los  sistemas de informacion
Preguntas sobre los sistemas de informacion
 
Procesos Cobit 4
Procesos Cobit 4Procesos Cobit 4
Procesos Cobit 4
 
Como determinar la Capacidad de los Procesos de COBIT 5
Como determinar la Capacidad de los Procesos de COBIT 5Como determinar la Capacidad de los Procesos de COBIT 5
Como determinar la Capacidad de los Procesos de COBIT 5
 
Algoritmo de Anillo
Algoritmo de AnilloAlgoritmo de Anillo
Algoritmo de Anillo
 
Actividad itil caso estudio1
Actividad itil caso estudio1Actividad itil caso estudio1
Actividad itil caso estudio1
 
enfoque-practico-mario-piattini
enfoque-practico-mario-piattinienfoque-practico-mario-piattini
enfoque-practico-mario-piattini
 

Viewers also liked

Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016Jean-Michel Doudoux
 
Introducing HTTP/2
Introducing HTTP/2Introducing HTTP/2
Introducing HTTP/2Ido Flatow
 
JAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) BridgeJAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) BridgeJosé Paumard
 
UX STRAT USA: Leah Buley, "The Role of UX / CX in Business"
UX STRAT USA: Leah Buley, "The Role of UX / CX in Business"UX STRAT USA: Leah Buley, "The Role of UX / CX in Business"
UX STRAT USA: Leah Buley, "The Role of UX / CX in Business"UX STRAT
 
Agile Wake Up #1 du 01/12/2015 : L'agilité à grande échelle
Agile Wake Up #1 du 01/12/2015 : L'agilité à grande échelleAgile Wake Up #1 du 01/12/2015 : L'agilité à grande échelle
Agile Wake Up #1 du 01/12/2015 : L'agilité à grande échelleZenika
 
WTF - What's The Fold - Bordeaux JUG 2013
WTF - What's The Fold - Bordeaux JUG 2013WTF - What's The Fold - Bordeaux JUG 2013
WTF - What's The Fold - Bordeaux JUG 2013Zenika
 
Open Data v0.3
Open Data v0.3Open Data v0.3
Open Data v0.3Luca Mauri
 
Perf ug comment ne plus rajouter de ram a vos jvm sans savoir pourquoi
Perf ug   comment ne plus rajouter de ram a vos jvm sans savoir pourquoiPerf ug   comment ne plus rajouter de ram a vos jvm sans savoir pourquoi
Perf ug comment ne plus rajouter de ram a vos jvm sans savoir pourquoipkernevez
 
Conference MicroServices101 - 1ere partie
Conference MicroServices101 - 1ere partieConference MicroServices101 - 1ere partie
Conference MicroServices101 - 1ere partieZenika
 
So, you wanna migrate to Java 9?
So, you wanna migrate to Java 9?So, you wanna migrate to Java 9?
So, you wanna migrate to Java 9?Tomek Adamczewki
 
JAX RS and CDI bike the reactive bridge
JAX RS and CDI bike the reactive bridgeJAX RS and CDI bike the reactive bridge
JAX RS and CDI bike the reactive bridgeJosé Paumard
 
Better Product Definition with Lean UX and Design Thinking
Better Product Definition with Lean UX and Design ThinkingBetter Product Definition with Lean UX and Design Thinking
Better Product Definition with Lean UX and Design ThinkingJeff Gothelf
 
Business intelligence v0.3
Business intelligence v0.3Business intelligence v0.3
Business intelligence v0.3Luca Mauri
 
Optimisez la performance de votre service client tout en maîtrisant votre b...
Optimisez la performance  de votre service client  tout en maîtrisant votre b...Optimisez la performance  de votre service client  tout en maîtrisant votre b...
Optimisez la performance de votre service client tout en maîtrisant votre b...Experian
 
Matinale DevOps / Docker
Matinale DevOps / DockerMatinale DevOps / Docker
Matinale DevOps / DockerZenika
 
Microbox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien RoyMicrobox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien Royekino
 
HTTP/2 Changes Everything
HTTP/2 Changes EverythingHTTP/2 Changes Everything
HTTP/2 Changes EverythingLori MacVittie
 

Viewers also liked (20)

Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016
 
How can your applications benefit from Java 9?
How can your applications benefit from Java 9?How can your applications benefit from Java 9?
How can your applications benefit from Java 9?
 
Introducing HTTP/2
Introducing HTTP/2Introducing HTTP/2
Introducing HTTP/2
 
JAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) BridgeJAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) Bridge
 
UX STRAT USA: Leah Buley, "The Role of UX / CX in Business"
UX STRAT USA: Leah Buley, "The Role of UX / CX in Business"UX STRAT USA: Leah Buley, "The Role of UX / CX in Business"
UX STRAT USA: Leah Buley, "The Role of UX / CX in Business"
 
Agile Wake Up #1 du 01/12/2015 : L'agilité à grande échelle
Agile Wake Up #1 du 01/12/2015 : L'agilité à grande échelleAgile Wake Up #1 du 01/12/2015 : L'agilité à grande échelle
Agile Wake Up #1 du 01/12/2015 : L'agilité à grande échelle
 
WTF - What's The Fold - Bordeaux JUG 2013
WTF - What's The Fold - Bordeaux JUG 2013WTF - What's The Fold - Bordeaux JUG 2013
WTF - What's The Fold - Bordeaux JUG 2013
 
Open Data v0.3
Open Data v0.3Open Data v0.3
Open Data v0.3
 
Perf ug comment ne plus rajouter de ram a vos jvm sans savoir pourquoi
Perf ug   comment ne plus rajouter de ram a vos jvm sans savoir pourquoiPerf ug   comment ne plus rajouter de ram a vos jvm sans savoir pourquoi
Perf ug comment ne plus rajouter de ram a vos jvm sans savoir pourquoi
 
Conference MicroServices101 - 1ere partie
Conference MicroServices101 - 1ere partieConference MicroServices101 - 1ere partie
Conference MicroServices101 - 1ere partie
 
So, you wanna migrate to Java 9?
So, you wanna migrate to Java 9?So, you wanna migrate to Java 9?
So, you wanna migrate to Java 9?
 
JAX RS and CDI bike the reactive bridge
JAX RS and CDI bike the reactive bridgeJAX RS and CDI bike the reactive bridge
JAX RS and CDI bike the reactive bridge
 
Better Product Definition with Lean UX and Design Thinking
Better Product Definition with Lean UX and Design ThinkingBetter Product Definition with Lean UX and Design Thinking
Better Product Definition with Lean UX and Design Thinking
 
Company_Profile_Digital_1
Company_Profile_Digital_1Company_Profile_Digital_1
Company_Profile_Digital_1
 
Business intelligence v0.3
Business intelligence v0.3Business intelligence v0.3
Business intelligence v0.3
 
JavaFX et le JDK9
JavaFX et le JDK9JavaFX et le JDK9
JavaFX et le JDK9
 
Optimisez la performance de votre service client tout en maîtrisant votre b...
Optimisez la performance  de votre service client  tout en maîtrisant votre b...Optimisez la performance  de votre service client  tout en maîtrisant votre b...
Optimisez la performance de votre service client tout en maîtrisant votre b...
 
Matinale DevOps / Docker
Matinale DevOps / DockerMatinale DevOps / Docker
Matinale DevOps / Docker
 
Microbox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien RoyMicrobox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien Roy
 
HTTP/2 Changes Everything
HTTP/2 Changes EverythingHTTP/2 Changes Everything
HTTP/2 Changes Everything
 

Similar to What HTTP/2.0 Will Do For You

Improving performance by changing the rules from fast to SPDY
Improving performance by changing the rules   from fast to SPDYImproving performance by changing the rules   from fast to SPDY
Improving performance by changing the rules from fast to SPDYCotendo
 
From Fast To SPDY
From Fast To SPDYFrom Fast To SPDY
From Fast To SPDYMike Belshe
 
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
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1Daniel Austin
 
Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocolsDaniel Austin
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 IntroductionWalter Liu
 
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
 
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 eraHTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 erapeychevi
 
Basic IT 2 (General IT Knowledge-2)
Basic IT 2 (General IT Knowledge-2)Basic IT 2 (General IT Knowledge-2)
Basic IT 2 (General IT Knowledge-2)kholis_mjd
 
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-запросов web-акселератором / Александр Крижановский (Tempe...
Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...
Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...Ontico
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2Ido Flatow
 

Similar to What HTTP/2.0 Will Do For You (20)

Improving performance by changing the rules from fast to SPDY
Improving performance by changing the rules   from fast to SPDYImproving performance by changing the rules   from fast to SPDY
Improving performance by changing the rules from fast to SPDY
 
From Fast To SPDY
From Fast To SPDYFrom Fast To SPDY
From Fast To SPDY
 
Http2
Http2Http2
Http2
 
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
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1
 
Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocols
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 Introduction
 
API Design Workshop
API Design WorkshopAPI Design Workshop
API Design Workshop
 
SPDY - or maybe HTTP2.0
SPDY - or maybe HTTP2.0SPDY - or maybe HTTP2.0
SPDY - or maybe HTTP2.0
 
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
 
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 eraHTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
 
Basic IT 2 (General IT Knowledge-2)
Basic IT 2 (General IT Knowledge-2)Basic IT 2 (General IT Knowledge-2)
Basic IT 2 (General IT Knowledge-2)
 
Ws
WsWs
Ws
 
Websocket
WebsocketWebsocket
Websocket
 
netty_qcon_v4
netty_qcon_v4netty_qcon_v4
netty_qcon_v4
 
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-запросов web-акселератором / Александр Крижановский (Tempe...
Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...
Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...
 
SPDY
SPDYSPDY
SPDY
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 

More from Mark Nottingham

Browser Caching and You: A Love Story
Browser Caching and You: A Love StoryBrowser Caching and You: A Love Story
Browser Caching and You: A Love StoryMark Nottingham
 
Stupid Web Caching Tricks
Stupid Web Caching TricksStupid Web Caching Tricks
Stupid Web Caching TricksMark Nottingham
 
Global Taxation Arbitrage
Global Taxation ArbitrageGlobal Taxation Arbitrage
Global Taxation ArbitrageMark Nottingham
 
Leveraging the Web for Services at Yahoo!
Leveraging the Web for Services at Yahoo!Leveraging the Web for Services at Yahoo!
Leveraging the Web for Services at Yahoo!Mark Nottingham
 

More from Mark Nottingham (8)

Browser Caching and You: A Love Story
Browser Caching and You: A Love StoryBrowser Caching and You: A Love Story
Browser Caching and You: A Love Story
 
Stupid Web Caching Tricks
Stupid Web Caching TricksStupid Web Caching Tricks
Stupid Web Caching Tricks
 
Shiny New HTTP Shit
Shiny New HTTP ShitShiny New HTTP Shit
Shiny New HTTP Shit
 
Global Taxation Arbitrage
Global Taxation ArbitrageGlobal Taxation Arbitrage
Global Taxation Arbitrage
 
Introducing REDbot
Introducing REDbotIntroducing REDbot
Introducing REDbot
 
Leveraging the Web for Services at Yahoo!
Leveraging the Web for Services at Yahoo!Leveraging the Web for Services at Yahoo!
Leveraging the Web for Services at Yahoo!
 
Web 2.0 on Speed
Web 2.0 on SpeedWeb 2.0 on Speed
Web 2.0 on Speed
 
What's up with HTTP?
What's up with HTTP?What's up with HTTP?
What's up with HTTP?
 

Recently uploaded

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 

Recently uploaded (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 

What HTTP/2.0 Will Do For You

  • 1. What HTTP/2.0 will* TO __ do for you Mark Nottingham http://www.mnot.net/ or, @mnot
  • 2. * forward-looking statement ___ statement based on TECHNICA L A projected financial management expectations. A forward- looking statement involves risks with regard to the accuracy of assumptions underlying the projections. Discussions of these statements typically include words such as estimate, anticipate, project, and believe.
  • 3. 1. Some recent history
  • 4. IETF HTTPbis WG WHAT? to clarify RFC2616 and improve interop WHO? Roy Fielding, Julian Reschke WHO (2)? Apache, Mozilla, Chrome, IIS, Varnish, Squid, F5, Curl, ATS, IE, HAProxy... WHEN: Almost finished! WHEN (2): ... after FIVE YEARS :(
  • 5. IETF HTTPbis WG (2) STRICTLY chartered to avoid making a new version of the protocol. Because EVERYBODY knows that’s not going to happen.
  • 7. November 2009: Mike Belshe and Roberto Peon announce SPDY March 2011: Mike talks about SPDY to the HTTPbis WG at IETF80 ~April 2011: Chrome, Google start using SPDY March 2012: HTTPbis solicits proposals for new protocol work March 2012: Firefox 11 ships with SPDY (off by default) May 2012: Netcraft finds 339 servers that support SPDY June 2012: Nginx announces SPDY implementation July 2012: Akamai announces SPDY implementation Tuesday: HTTPbis re-chartered to work on HTTP/2.0, based on SPDY
  • 9. NO change to HTTP semantics; it’s about how it gets onto the wire
  • 10. Nothing new to see here
  • 14. connection setup vanilla server client GE T /foo HTTP/1.0 One request K 200 O per TCP connection connection close OMG ITS SO SLOW
  • 15. GE T /foo O K 200 HTTP/1.0 (with Keep-Alive) GE T /ba r able to reuse connections, avoid connection setup O K 200 GE T /ba z
  • 16. GE T /foo O K 200 BUT it still blocks GE T /ba r one outstanding request at a time O K 200 GE T /ba z
  • 17. GE T /foo GE T /ba r GE T /ba z O K 200 200 O K HTTP/1.1 OK 200 (with pipelining) multiple, ordered requests
  • 18. GE T /foo GE T /ba r head-of-line blocking OK 200 Still serialised! K 2 00 O Large downloads / long “think” time can block other requests
  • 19. The State of the Art • Use persistent connections (“keep-alives”) • Pipelining is getting a little deployment • Use multiple connections for parallelism • RFC2616 said “2”; HTTPbis says “reasonable” • Browsers use 4-8; bad people use more • Build lots of heuristics into browsers for connection reuse • Hope that it all works out
  • 20. What’s so bad about that? • TCP is built for long-lived flows • More connections = shorter flows • Congestion control doesn’t have time to ramp up • Makes Buffer Bloat worse • Fairness (user to user, app to app) • How many connections is the best?
  • 21. four at a time cascading waterfalls
  • 22. GE T /foo GE T /ba r K 2 GE 00 T O /ba SPDY 2 00 O K z multiplexing GE T /a • one connection 20 0O K • many requests • prioritisation GE T /b • out of order OK 20 0 • interleaved GE T /c NO* QUEUING 0 OK 20
  • 24. GET / HTTP/1.1 Host: www.etsy.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.14 (KHTML, like Gecko) Version/6.0.1 Safari/536.26.14 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 DNT: 1 Accept-Language: en-us Accept-Encoding: gzip, deflate Cookie: uaid=uaid%3DVdhk5W6sexG-_Y7ZBeQFa3cq7yMQ%26_now%3D1325204464%26_slt %3Ds_LCLVpU%26_kid%3D1%26_ver%3D1%26_mac %3DlVnlM3hMdb3Cs3hqMVuk_dQEixsqQzUlNYCs9H_Kj8c.; user_prefs=1&2596706699&q0tPzMlJLaoEAA== Connection: keep-alive 525 bytes
  • 25. GET /assets/dist/js/etsy.recent-searches.20121001205006.js HTTP/1.1 Host: www.etsy.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.14 (KHTML, like Gecko) Version/6.0.1 Safari/536.26.14 Accept: */* DNT: 1 Referer: http://www.etsy.com/ Accept-Language: en-us Accept-Encoding: gzip, deflate Cookie: autosuggest_split=1; etala=111461200.1476767743.1349274889.1349274889.1349274889.1.0; etalb=111461200.1.10.1349274889; last_browse_page=%2F; uaid=uaid%3DVdhk5W6sexG- _Y7ZBeQFa3cq7yMQ%26_now%3D1325204464%26_slt%3Ds_LCLVpU%26_kid%3D1%26_ver%3D1%26_mac %3DlVnlM3hMdb3Cs3hqMVuk_dQEixsqQzUlNYCs9H_Kj8c.; user_prefs=1&2596706699&q0tPzMlJLaoEAA== Connection: keep-alive 226 new bytes; 690 total
  • 26. GET /assets/dist/js/jquery.appear.20121001205006.js HTTP/1.1 Host: www.etsy.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.14 (KHTML, like Gecko) Version/6.0.1 Safari/536.26.14 Accept: */* DNT: 1 Referer: http://www.etsy.com/ Accept-Language: en-us Accept-Encoding: gzip, deflate Cookie: autosuggest_split=1; etala=111461200.1476767743.1349274889.1349274889.1349274889.1.0; etalb=111461200.1.10.1349274889; last_browse_page=%2F; uaid=uaid%3DVdhk5W6sexG- _Y7ZBeQFa3cq7yMQ%26_now%3D1325204464%26_slt%3Ds_LCLVpU%26_kid%3D1%26_ver%3D1%26_mac %3DlVnlM3hMdb3Cs3hqMVuk_dQEixsqQzUlNYCs9H_Kj8c.; user_prefs=1&2596706699&q0tPzMlJLaoEAA== Connection: keep-alive 14 new bytes; 683 total
  • 27. GET /assets/dist/js/bootstrap/username-suggester.20121001205006.js HTTP/1.1 Host: www.etsy.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.14 (KHTML, like Gecko) Version/6.0.1 Safari/536.26.14 Accept: */* DNT: 1 Referer: http://www.etsy.com/ Accept-Language: en-us Accept-Encoding: gzip, deflate Cookie: autosuggest_split=1; etala=111461200.1476767743.1349274889.1349274889.1349274889.1.0; etalb=111461200.1.10.1349274889; last_browse_page=%2F; uaid=uaid%3DVdhk5W6sexG- _Y7ZBeQFa3cq7yMQ%26_now%3D1325204464%26_slt%3Ds_LCLVpU%26_kid%3D1%26_ver%3D1%26_mac %3DlVnlM3hMdb3Cs3hqMVuk_dQEixsqQzUlNYCs9H_Kj8c.; user_prefs=1&2596706699&q0tPzMlJLaoEAA== Connection: keep-alive 28 new bytes; 698 total
  • 28. • Four requests • 2,596 bytes total • Minimum three packets in most places • One for the HTML, two+ for assets • 1,797 redundant bytes
  • 29. HTTP headers on a connection are highly similar
  • 31. Big req * many reqs / small IW = SLOW • Patrick’s test: • 83 asset requests • IW = 3 • ~1400 bytes of headers • Uncompressed: 7-8RT • Compressed (zlib): 1RT
  • 34. 3. What does it all mean?
  • 35. HTTP/2.0 is going to change Web Engineering...
  • 36. ... but not change HTTP APIs. Much.
  • 39. • Image spriting - not necessary • CSS / JS can be in multiple files • HTTP APIs can be finer-grained without sacrificing performance • Third party content is an even bigger problem
  • 41. • Multiplexing SHOULD make multiple connections unnecessary • Key is to get the TCP connection “warm” as quickly as possible, and keep it there
  • 43. • Now, adding new headers is easy • Very small performance / latency / bandwidth impact • What should be in headers can be in headers • Content Negotiation might become interesting again
  • 46. Debugging will need Tools
  • 47. Lots of tweaking • Prioritisation • When to Push • Flow Control
  • 48. Transition Decisions • De-sharding • De-combining scripts • De-spriting • etc.
  • 49. Guess what, Steve? Absurdly Fast Web Sites. Fast.
  • 52. 4.2 TCP is awkward • In-order delivery = head-of-line blocking • Initial congestion window is small • Packet loss isn’t handled well
  • 53. HTTP as the “Everything Protocol” ?