128
HTTP /2

Como o HTTP/2 vai mudar sua vida

  • Upload
    caelum

  • View
    2.051

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Como o HTTP/2 vai mudar sua vida

HTTP/2

Page 2: Como o HTTP/2 vai mudar sua vida

@sergio_caelum sergiolopes.org

Page 3: Como o HTTP/2 vai mudar sua vida

review

HTTP em 5 slides

Page 4: Como o HTTP/2 vai mudar sua vida

$  telnet  www.caelum.com.br  80  Trying  64.233.171.121...  Connected  to  ghs.googlehosted.com.  Escape  character  is  '^]'.  

GET  /  HTTP/1.1  Host:  www.caelum.com.br  

HTTP/1.1  200  OK  Content-­‐Type:  text/html;  charset=utf-­‐8  Vary:  Accept-­‐Encoding,User-­‐Agent  Content-­‐Language:  pt-­‐br  Date:  Thu,  03  Apr  2014  18:37:18  GMT  Server:  Google  Frontend  Cache-­‐Control:  private  

<!DOCTYPE  html><html><head><title>Caelum</title>

Page 5: Como o HTTP/2 vai mudar sua vida

$  telnet  www.caelum.com.br  80  Trying  64.233.171.121...  Connected  to  ghs.googlehosted.com.  Escape  character  is  '^]'.  

GET  /  HTTP/1.1  Host:  www.caelum.com.br  

HTTP/1.1  200  OK  Content-­‐Type:  text/html;  charset=utf-­‐8  Vary:  Accept-­‐Encoding,User-­‐Agent  Content-­‐Language:  pt-­‐br  Date:  Thu,  03  Apr  2014  18:37:18  GMT  Server:  Google  Frontend  Cache-­‐Control:  private  

<!DOCTYPE  html><html><head><title>Caelum</title>

TEXTO

Page 6: Como o HTTP/2 vai mudar sua vida

REQUEST

RESPONSE

$  telnet  www.caelum.com.br  80  Trying  64.233.171.121...  Connected  to  ghs.googlehosted.com.  Escape  character  is  '^]'.  

GET  /  HTTP/1.1  Host:  www.caelum.com.br  

HTTP/1.1  200  OK  Content-­‐Type:  text/html;  charset=utf-­‐8  Vary:  Accept-­‐Encoding,User-­‐Agent  Content-­‐Language:  pt-­‐br  Date:  Thu,  03  Apr  2014  18:37:18  GMT  Server:  Google  Frontend  Cache-­‐Control:  private  

<!DOCTYPE  html><html><head><title>Caelum</title>

Page 7: Como o HTTP/2 vai mudar sua vida

REQUEST

RESPONSE... ESPERA ...

$  telnet  www.caelum.com.br  80  Trying  64.233.171.121...  Connected  to  ghs.googlehosted.com.  Escape  character  is  '^]'.  

GET  /  HTTP/1.1  Host:  www.caelum.com.br  

HTTP/1.1  200  OK  Content-­‐Type:  text/html;  charset=utf-­‐8  Vary:  Accept-­‐Encoding,User-­‐Agent  Content-­‐Language:  pt-­‐br  Date:  Thu,  03  Apr  2014  18:37:18  GMT  Server:  Google  Frontend  Cache-­‐Control:  private  

<!DOCTYPE  html><html><head><title>Caelum</title>

Page 8: Como o HTTP/2 vai mudar sua vida

MÉTODO E URL

STATUS

RESPOSTA

$  telnet  www.caelum.com.br  80  Trying  64.233.171.121...  Connected  to  ghs.googlehosted.com.  Escape  character  is  '^]'.  

GET  /  HTTP/1.1  Host:  www.caelum.com.br  

HTTP/1.1  200  OK  Content-­‐Type:  text/html;  charset=utf-­‐8  Vary:  Accept-­‐Encoding,User-­‐Agent  Content-­‐Language:  pt-­‐br  Date:  Thu,  03  Apr  2014  18:37:18  GMT  Server:  Google  Frontend  Cache-­‐Control:  private  

<!DOCTYPE  html><html><head><title>Caelum</title>

Page 9: Como o HTTP/2 vai mudar sua vida

HEADERS

HEADERS

$  telnet  www.caelum.com.br  80  Trying  64.233.171.121...  Connected  to  ghs.googlehosted.com.  Escape  character  is  '^]'.  

GET  /  HTTP/1.1  Host:  www.caelum.com.br  

HTTP/1.1  200  OK  Content-­‐Type:  text/html;  charset=utf-­‐8  Vary:  Accept-­‐Encoding,User-­‐Agent  Content-­‐Language:  pt-­‐br  Date:  Thu,  03  Apr  2014  18:37:18  GMT  Server:  Google  Frontend  Cache-­‐Control:  private  

<!DOCTYPE  html><html><head><title>Caelum</title>

Page 10: Como o HTTP/2 vai mudar sua vida

httptexto

request > espera > responseheaders

Page 11: Como o HTTP/2 vai mudar sua vida

cliente servidor

cliente servidor

HTTP 1.1

CONEXÃO TCP

REQUEST

REQUEST

CONEXÃO TCP

Page 12: Como o HTTP/2 vai mudar sua vida

cliente servidor

Keep-Alive

REQUEST

REQUEST #2

REQUEST #3

CONEXÃO TCP

Page 13: Como o HTTP/2 vai mudar sua vida

cliente servidor

TCP HANDSHAKE

REQUEST

REQUEST #2

REQUEST #3

cliente servidor

TCP HANDSHAKE

REQUEST

REQUEST #2

REQUEST #3

cliente servidor

TCP HANDSHAKE

REQUEST

REQUEST #2

REQUEST #3

cliente servidor

TCP HANDSHAKE

REQUEST

REQUEST #2

REQUEST #3

cliente servidor

TCP HANDSHAKE

REQUEST

REQUEST #2

REQUEST #3

cliente servidor

TCP HANDSHAKE

REQUEST

REQUEST #2

REQUEST #3

de 4 a 8 conexões

Page 14: Como o HTTP/2 vai mudar sua vida

otimizações web

Page 15: Como o HTTP/2 vai mudar sua vida

otimizações webdiminuir requests

Page 16: Como o HTTP/2 vai mudar sua vida

otimizações webdiminuir requests

diminuir tráfego

Page 17: Como o HTTP/2 vai mudar sua vida

otimizações webdiminuir requests

diminuir tráfego

paralelizar requests

Page 18: Como o HTTP/2 vai mudar sua vida

otimizações webJUNTAR CSS E JS SPRITES INLINE DE RECURSOS

diminuir requests

diminuir tráfego

paralelizar requests

Page 19: Como o HTTP/2 vai mudar sua vida

otimizações webJUNTAR CSS E JS SPRITES INLINE DE RECURSOS

GZIP MINIFICAÇÃO DOMÍNIOS SEM COOKIES

diminuir requests

diminuir tráfego

paralelizar requests

Page 20: Como o HTTP/2 vai mudar sua vida

otimizações webJUNTAR CSS E JS SPRITES INLINE DE RECURSOS

GZIP MINIFICAÇÃO DOMÍNIOS SEM COOKIES

MÚLTIPLOS HOSTNAMES CDNs

diminuir requests

diminuir tráfego

paralelizar requests

Page 21: Como o HTTP/2 vai mudar sua vida

o fantástico mundo do

HTTP/2 (e do SPDY)

Page 22: Como o HTTP/2 vai mudar sua vida

GET  /  HTTP/1.1  Host:  www.caelum.com.br  

HTTP/1.1  200  OK  Content-­‐Type:  text/html;  charset=utf-­‐8  Content-­‐Language:  pt-­‐br  Date:  Thu,  03  Apr  2015  18:37:18  GMT  Cache-­‐Control:  private  

<!DOCTYPE  html><html><head><title>Caelum</title>  <meta  name=viewport  content=width=device-­‐width>  <meta  name=description  content="A  Caelum  tem  os  cursos  de  Java,  Android,  Scrum,  Rails,  .NET,  HTML  e  CSS  mais  reconhecidos  no  mercado"><style>

http 1.1

Page 23: Como o HTTP/2 vai mudar sua vida

GET  /  HTTP/1.1  Host:  www.caelum.com.br  Accept-­‐Encoding:  gzip  

HTTP/1.1  200  OK  Content-­‐Type:  text/html;  charset=utf-­‐8  Content-­‐Language:  pt-­‐br  Date:  Thu,  03  Apr  2015  18:37:18  GMT  Cache-­‐Control:  private  Content-­‐Encoding:  gzip  Vary:  Accept-­‐Encoding  

??[mŚ???,l?T?%.?JI?;1?R0??E?д?H{{?un??Tm??:?U?5DI??su?

L??!???ӵm?_?\{-­‐??bՓ?u??6?1,W??N?C.?0?f*??ͿԨԩԪԫԬԭԮԯՠֈ֍֎ࢽࢼࢻࢺࢹࢸࢷࢶࢴࢳࢲࢱࢰࢯࢮࢭࢡࡪࡩࡨࡧࡦࡥࡤࡣࡢࡡࡠ߿߾ׯॸঀৼ৽?BV?????!#m|?

x???L?    Q????U?.?MZ跘?M?JN_?I??RNN???}Y??????cM?<?T?l  U????8?Π???id?c?8)E8??%:?$D*ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ?????$4???j?F?  

((R2[??O?;s???ޱޥޤޣޢޡޠޟޞޝޜޛޚޙޘޗޖޕޔޓޒޑސޏގލތދފމވއކޅބރނށހy\??Fd⒙HK?x?-­‐?$???ȈȈ??????????O

http 1.1

GZIP

Page 24: Como o HTTP/2 vai mudar sua vida

0101010101010101010101  

010101010101  0101010101010  101010101010  0101010101010  

??[mŚ???,l?T?%.?JI?;1?R0??E?д?H{{?un??Tm??:?U?5DI??su?

L??!???ӵm?_?\{-­‐??bՓ?u??6?1,W??N?C.?0?f*??ͿԨԩԪԫԬԭԮԯՠֈ֍֎ࢽࢼࢻࢺࢹࢸࢷࢶࢴࢳࢲࢱࢰࢯࢮࢭࢡࡪࡩࡨࡧࡦࡥࡤࡣࡢࡡࡠ߿߾ׯॸঀৼ৽?BV?????!#m|?

x???L?    Q????U?.?MZ跘?M?JN_?I??RNN???}Y??????cM?<?T?l  U????8?Π???id?c?8)E8??%:?$D*ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ?????$4???j?F?  

((R2[??O?;s???ޱޥޤޣޢޡޠޟޞޝޜޛޚޙޘޗޖޕޔޓޒޑސޏގލތދފމވއކޅބރނށހy\??Fd⒙HK?x?-­‐?$???ȈȈ??????????O

http 2.0

BINÁRIO

GZIP

Page 25: Como o HTTP/2 vai mudar sua vida

?c?8)E8??%:?$  

?T?%.?JI?;1?R  ,l?T?%.?JI?;1?R  ?c?8)E8??%:?$  

??[mŚ???,l?T?%.?JI?;1?R0??E?д?H{{?un??Tm??:?U?5DI??su?

L??!???ӵm?_?\{-­‐??bՓ?u??6?1,W??N?C.?0?f*??ͿԨԩԪԫԬԭԮԯՠֈ֍֎ࢽࢼࢻࢺࢹࢸࢷࢶࢴࢳࢲࢱࢰࢯࢮࢭࢡࡪࡩࡨࡧࡦࡥࡤࡣࡢࡡࡠ߿߾ׯॸঀৼ৽?BV?????!#m|?

x???L?    Q????U?.?MZ跘?M?JN_?I??RNN???}Y??????cM?<?T?l  U????8?Π???id?c?8)E8??%:?$D*ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ?????$4???j?F?  

((R2[??O?;s???ޱޥޤޣޢޡޠޟޞޝޜޛޚޙޘޗޖޕޔޓޒޑސޏގލތދފމވއކޅބރނށހy\??Fd⒙HK?x?-­‐?$???ȈȈ??????????O

http 2.0

BINÁRIO HPACK

GZIP

Page 26: Como o HTTP/2 vai mudar sua vida

?????????  

???????  ????????  ????????  

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

http 2.0

BINÁRIO HPACK

GZIP

TLS

TLS

Page 27: Como o HTTP/2 vai mudar sua vida

HEADER BINÁRIO GZIP / HPACK

TLS*

Page 28: Como o HTTP/2 vai mudar sua vida

cliente servidor

HTTP 1.1 com Keep-Alive

Page 29: Como o HTTP/2 vai mudar sua vida

cliente servidor

HTTP 1.1 com Pipelining*

Page 30: Como o HTTP/2 vai mudar sua vida

cliente servidor

HTTP 1.1 com Pipelining*

Page 31: Como o HTTP/2 vai mudar sua vida

cliente servidor

HTTP 1.1 com Pipelining*

Head of Line Blocking...

...

Page 32: Como o HTTP/2 vai mudar sua vida

cliente servidor

HTTP 2.0 multiplexing

Page 33: Como o HTTP/2 vai mudar sua vida

multiplexing

1 CONEXÃO TCP ASSÍNCRONO

Page 34: Como o HTTP/2 vai mudar sua vida
Page 35: Como o HTTP/2 vai mudar sua vida
Page 36: Como o HTTP/2 vai mudar sua vida
Page 37: Como o HTTP/2 vai mudar sua vida
Page 38: Como o HTTP/2 vai mudar sua vida
Page 39: Como o HTTP/2 vai mudar sua vida
Page 40: Como o HTTP/2 vai mudar sua vida

otimizações webJUNTAR CSS E JS SPRITES INLINE DE RECURSOS

GZIP MINIFICAÇÃO DOMÍNIOS SEM COOKIES

MÚLTIPLOS HOSTNAMES CDNs

diminuir requests

diminuir tráfego

paralelizar requests

Page 41: Como o HTTP/2 vai mudar sua vida

otimizações webJUNTAR CSS E JS SPRITES INLINE DE RECURSOS

GZIP MINIFICAÇÃO DOMÍNIOS SEM COOKIES

MÚLTIPLOS HOSTNAMES CDNs

diminuir requests

diminuir tráfego

paralelizar requests

Page 42: Como o HTTP/2 vai mudar sua vida

otimizações webJUNTAR CSS E JS SPRITES INLINE DE RECURSOS

GZIP MINIFICAÇÃO DOMÍNIOS SEM COOKIES

MÚLTIPLOS HOSTNAMES CDNs

diminuir requests

diminuir tráfego

paralelizar requests

Page 43: Como o HTTP/2 vai mudar sua vida

otimizações webJUNTAR CSS E JS SPRITES INLINE DE RECURSOS

GZIP MINIFICAÇÃO DOMÍNIOS SEM COOKIES

MÚLTIPLOS HOSTNAMES CDNs

diminuir requests

diminuir tráfego

paralelizar requests

Page 44: Como o HTTP/2 vai mudar sua vida

:method:  GET  :path:  /  Host:  www.caelum.com.br  Accept:  text/html,application/xhtml+xml;q=0.9,image/jpeg  Accept-­‐Encoding:  gzip  User-­‐Agent:  Mozilla/5.0  (Macintosh;  Intel  Mac  OS  X  10_9_2)    Cookie:  SID=786dads78asdbad876asdhjvb28  

:method:  GET  :path:  /style.css  Host:  www.caelum.com.br  Accept:  text/html,application/xhtml+xml;q=0.9,image/jpeg  Accept-­‐Encoding:  gzip  User-­‐Agent:  Mozilla/5.0  (Macintosh;  Intel  Mac  OS  X  10_9_2)    Cookie:  SID=786dads78asdbad876asdhjvb28

http 1.1

Page 45: Como o HTTP/2 vai mudar sua vida

:method:  GET  :path:  /  Host:  www.caelum.com.br  Accept:  text/html,application/xhtml+xml;q=0.9,image/jpeg  Accept-­‐Encoding:  gzip  User-­‐Agent:  Mozilla/5.0  (Macintosh;  Intel  Mac  OS  X  10_9_2)    Cookie:  SID=786dads78asdbad876asdhjvb28  

:method:  GET  :path:  /style.css  Host:  www.caelum.com.br  Accept:  text/html,application/xhtml+xml;q=0.9,image/jpeg  Accept-­‐Encoding:  gzip  User-­‐Agent:  Mozilla/5.0  (Macintosh;  Intel  Mac  OS  X  10_9_2)    Cookie:  SID=786dads78asdbad876asdhjvb28

http 1.1

Page 46: Como o HTTP/2 vai mudar sua vida

:method:  GET  :path:  /  Host:  www.caelum.com.br  Accept:  text/html,application/xhtml+xml;q=0.9,image/jpeg  Accept-­‐Encoding:  gzip  User-­‐Agent:  Mozilla/5.0  (Macintosh;  Intel  Mac  OS  X  10_9_2)    Cookie:  SID=786dads78asdbad876asdhjvb28  

:path:  /style.css  

http 2.0

Page 47: Como o HTTP/2 vai mudar sua vida

:method:  GET  :path:  /  Host:  www.caelum.com.br  Accept:  text/html,application/xhtml+xml;q=0.9,image/jpeg  Accept-­‐Encoding:  gzip  User-­‐Agent:  Mozilla/5.0  (Macintosh;  Intel  Mac  OS  X  10_9_2)    Cookie:  SID=786dads78asdbad876asdhjvb28  

:path:  /style.css  

:path:  /main.js  

:path:  /imagem.jpg  Host:  images.caelum.com.br  

http 2.0

Page 48: Como o HTTP/2 vai mudar sua vida

header tables

MENOS BYTES REQUEST e RESPONSE

STATEFUL

Page 49: Como o HTTP/2 vai mudar sua vida

otimizações webJUNTAR CSS E JS SPRITES INLINE DE RECURSOS

GZIP MINIFICAÇÃO DOMÍNIOS SEM COOKIES

diminuir requests

diminuir tráfego

MÚLTIPLOS HOSTNAMES CDNs

paralelizar requests

Page 50: Como o HTTP/2 vai mudar sua vida

otimizações webJUNTAR CSS E JS SPRITES INLINE DE RECURSOS

GZIP MINIFICAÇÃO DOMÍNIOS SEM COOKIES

diminuir requests

diminuir tráfego

MÚLTIPLOS HOSTNAMES CDNs

paralelizar requests

Page 51: Como o HTTP/2 vai mudar sua vida

inlinediminuir requests

priorizar conteúdo

Page 52: Como o HTTP/2 vai mudar sua vida

priorizar conteúdo

<!DOCTYPE  html>  <html>  <head>          <style>                  /*  estilo  para  o  ATF  */          </style>  

       <script>                  /*  javascript  importante  */          </script>  

       /*  javascript  pra  depois  */          <script  src="secundario.js"  async></script>  </head>  <body>          ...  </body>  </html>

Page 53: Como o HTTP/2 vai mudar sua vida

priorizar conteúdo

<!DOCTYPE  html>  <html>  <head>          <link  rel="stylesheet"  href="estilo.css">          <script  src="app.js"  async></script>  </head>  <body>          <img  src="foto.jpg">          ...          <script  src="jquery.js"></script>          <script  src="plugin.js"></script>  </body>  </html>

Page 54: Como o HTTP/2 vai mudar sua vida

priorizar conteúdo

<!DOCTYPE  html>  <html>  <head>          <link  rel="stylesheet"  href="estilo.css">          <script  src="app.js"  async></script>  </head>  <body>          <img  src="foto.jpg">          ...          <script  src="jquery.js"></script>          <script  src="plugin.js"></script>  </body>  </html>

Page 55: Como o HTTP/2 vai mudar sua vida

index.html

priorizar conteúdo

Page 56: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css

priorizar conteúdo

Page 57: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css app.js

priorizar conteúdo

Page 58: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.jsapp.js

priorizar conteúdo

Page 59: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.jsapp.js foto.jpg

priorizar conteúdo

Page 60: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

priorizar conteúdo

Page 61: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

priorizar conteúdo

Page 62: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

priorizar conteúdo

Page 63: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

priorizar conteúdo

Page 64: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

priorizar conteúdo

Page 65: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

priorizar conteúdo

Page 66: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

priorizar conteúdo

Page 67: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

logo.png

priorizar conteúdo

Page 68: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

logo.png

12

priorizar conteúdo

Page 69: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

logo.png

12 8

priorizar conteúdo

Page 70: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

logo.png

12 8 8

priorizar conteúdo

Page 71: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

logo.png

12 8 8 4

priorizar conteúdo

Page 72: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

logo.png

12 8 8 4

8

priorizar conteúdo

Page 73: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css jquery.js

plugin.js

app.js foto.jpg

logo.png

12 8 8 4

4 8

priorizar conteúdo

Page 74: Como o HTTP/2 vai mudar sua vida

index.html

cliente servidor

priorizar conteúdo

Page 75: Como o HTTP/2 vai mudar sua vida

index.html

cliente servidor

priorizar conteúdo

Page 76: Como o HTTP/2 vai mudar sua vida

index.html

cliente servidor

priorizar conteúdo

Page 77: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css

cliente servidor

priorizar conteúdo

Page 78: Como o HTTP/2 vai mudar sua vida

index.html

estilo.css

cliente servidor

priorizar conteúdo

Page 79: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

priorizar conteúdo

Page 80: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

priorizar conteúdo

Page 81: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpg

priorizar conteúdo

Page 82: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpg

priorizar conteúdo

Page 83: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.js

priorizar conteúdo

Page 84: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.js

priorizar conteúdo

Page 85: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.jsplugin.js

priorizar conteúdo

Page 86: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.jsplugin.js

priorizar conteúdo

Page 87: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.jsplugin.js

priorizar conteúdo

Page 88: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.jsplugin.js

estilo.css

priorizar conteúdo

Page 89: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.jsplugin.js

estilo.css

priorizar conteúdo

Page 90: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.jsplugin.js

estilo.cssjquery.js

priorizar conteúdo

Page 91: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.jsplugin.js

estilo.cssjquery.js

priorizar conteúdo

Page 92: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.jsplugin.js

app.js

estilo.cssjquery.js

priorizar conteúdo

Page 93: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.jsplugin.js

app.js

estilo.cssjquery.js

priorizar conteúdo

Page 94: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.jsplugin.js

app.js

estilo.cssjquery.js

plugin.js

priorizar conteúdo

Page 95: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.jsplugin.js

app.js

estilo.cssjquery.js

plugin.js

priorizar conteúdo

Page 96: Como o HTTP/2 vai mudar sua vida

index.html

app.js

estilo.css

cliente servidor

foto.jpgjquery.jsplugin.js

app.js

estilo.css

foto.jpg

jquery.js

plugin.js

priorizar conteúdo

Page 97: Como o HTTP/2 vai mudar sua vida

index.html

cliente servidor

Page 98: Como o HTTP/2 vai mudar sua vida

index.html

cliente servidor

Page 99: Como o HTTP/2 vai mudar sua vida

index.html

cliente servidor

espera

Page 100: Como o HTTP/2 vai mudar sua vida

index.html

cliente servidor

index.html bloqueante

espera

Page 101: Como o HTTP/2 vai mudar sua vida

index.html

cliente servidor

Server Push

Page 102: Como o HTTP/2 vai mudar sua vida

index.html

cliente servidor

Server Push

Page 103: Como o HTTP/2 vai mudar sua vida

index.html

cliente servidor

Server Push

Page 104: Como o HTTP/2 vai mudar sua vida

index.html

cliente servidor

app.js

estilo.css

foto.jpg

jquery.js

plugin.js

Server Push

Page 105: Como o HTTP/2 vai mudar sua vida

index.html

cliente servidor

app.js

estilo.css

foto.jpg

jquery.js

plugin.js

Server Push

Page 106: Como o HTTP/2 vai mudar sua vida

cliente servidor

index.html  

style.css

index.html

icone.png

cliente servidor

index.html

style.css  

index.html

icone.png

Server Push Cancelável

Page 107: Como o HTTP/2 vai mudar sua vida

server push

PRIORIZAÇÃO CANCELÁVEL CACHEÁVEL

Page 108: Como o HTTP/2 vai mudar sua vida

otimizações webJUNTAR CSS E JS SPRITES INLINE DE RECURSOS

GZIP MINIFICAÇÃO DOMÍNIOS SEM COOKIES

diminuir requests

diminuir tráfego

MÚLTIPLOS HOSTNAMES CDNs

paralelizar requests

Page 109: Como o HTTP/2 vai mudar sua vida

otimizações webJUNTAR CSS E JS SPRITES INLINE DE RECURSOS

GZIP MINIFICAÇÃO DOMÍNIOS SEM COOKIES

diminuir requests

diminuir tráfego

MÚLTIPLOS HOSTNAMES CDNs

paralelizar requests

Page 110: Como o HTTP/2 vai mudar sua vida

http 2

Page 111: Como o HTTP/2 vai mudar sua vida

http 2BINÁRIO

Page 112: Como o HTTP/2 vai mudar sua vida

http 2

COMPRESSÃO

BINÁRIO

Page 113: Como o HTTP/2 vai mudar sua vida

http 2

COMPRESSÃOCRIPTOGRAFIA

BINÁRIO

Page 114: Como o HTTP/2 vai mudar sua vida

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

BINÁRIO

Page 115: Como o HTTP/2 vai mudar sua vida

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXINGPRIORIZAÇÃO

BINÁRIO

Page 116: Como o HTTP/2 vai mudar sua vida

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

BINÁRIO

Page 117: Como o HTTP/2 vai mudar sua vida

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

+PERFORMANCE

BINÁRIO

Page 118: Como o HTTP/2 vai mudar sua vida

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

+MOBILE+PERFORMANCE

BINÁRIO

Page 119: Como o HTTP/2 vai mudar sua vida

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

+MOBILE+FÁCIL+PERFORMANCE

BINÁRIO

Page 120: Como o HTTP/2 vai mudar sua vida

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

+MOBILE+FÁCIL+PERFORMANCE

BINÁRIO

+COMPATÍVEL

Page 121: Como o HTTP/2 vai mudar sua vida

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

+MOBILE+FÁCIL+PERFORMANCE

BINÁRIO

+COMPATÍVEL+LEVE

Page 122: Como o HTTP/2 vai mudar sua vida

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

+MOBILE+FÁCIL+PERFORMANCE

BINÁRIO

+COMPATÍVEL +SEGURO+LEVE

Page 123: Como o HTTP/2 vai mudar sua vida

otimizações web http2diminuir tráfego

CACHE MINIFICAÇÃO JS, CSS, HTML COMPRESSÃO DE IMAGENS

Page 124: Como o HTTP/2 vai mudar sua vida

otimizações web http2diminuir tráfego

CACHE MINIFICAÇÃO JS, CSS, HTML COMPRESSÃO DE IMAGENS

SERVER PUSH / HINT CRITICAL PATH 60 FPS / JANK FREE

otimizar renderização

Page 125: Como o HTTP/2 vai mudar sua vida

otimizações web http2diminuir tráfego

CACHE MINIFICAÇÃO JS, CSS, HTML COMPRESSÃO DE IMAGENS

SERVER PUSH / HINT CRITICAL PATH 60 FPS / JANK FREE

otimizar renderização

CDNs QUIC

diminuir latência

Page 126: Como o HTTP/2 vai mudar sua vida

USE HTTP/2 HOJE (ou SPDY)

Page 127: Como o HTTP/2 vai mudar sua vida

@sergio_caelum

obrigado!

Page 128: Como o HTTP/2 vai mudar sua vida

links adicionais:● The Effect of Network and Infrastructural Variables on

SPDY's Performance.

● Livro High Performance Browser Networking

● Especificação HTTP2

● http://daniel.haxx.se/http2/