HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

88
rumo ao HTTP 2.0 o que vem por aí e o que você pode utilizar já com SPDY

description

Palestra HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

Transcript of HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

Page 1: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

rumo ao

HTTP 2.0o que vem por aí e o que você pode utilizar já com

SPDY

Page 2: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

Sérgio Lopes

@sergio_caelum sergiolopes.org

Page 3: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

review

HTTP em 5 slides

Page 4: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

$  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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

$  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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

httptexto

request > espera > responseheaders

Page 11: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

cliente servidor

cliente servidor

HTTP 1.1

CONEXÃO TCP

REQUEST

REQUEST

CONEXÃO TCP

Page 12: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

cliente servidor

Keep-Alive

REQUEST

REQUEST #2

REQUEST #3

CONEXÃO TCP

Page 13: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

otimizações web

Page 15: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

otimizações webdiminuir requests

Page 16: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

otimizações webdiminuir requests

diminuir tráfego

Page 17: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

otimizações webdiminuir requests

diminuir tráfego

paralelizar requests

Page 18: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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

diminuir requests

diminuir tráfego

paralelizar requests

Page 19: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

o fantástico mundo do

HTTP 2.0 (e do SPDY)

Page 22: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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  2014  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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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  2014  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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

?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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
Page 27: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

SSL

Page 28: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

?????????  

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

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

http 2.0

BINÁRIO HPACK

GZIP

SSL

SSL

Page 29: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

HEADER BINÁRIO GZIP / HPACK

SSL

Page 30: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

cliente servidor

HTTP 1.1 com Keep-Alive

Page 31: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

cliente servidor

HTTP 1.1 com Pipelining*

Page 32: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

cliente servidor

HTTP 1.1 com Pipelining*

Page 33: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

cliente servidor

HTTP 1.1 com pipelining*

HOL Blocking...

...

Page 34: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

cliente servidor

HTTP 2.0 multiplexing

Page 35: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

multiplexing

1 CONEXÃO TCP ASSÍNCRONO

Page 36: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
Page 37: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
Page 38: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
Page 39: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
Page 40: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
Page 41: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
Page 42: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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 45: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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 46: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

: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 47: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

: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 48: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

: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 49: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

: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 50: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

header tables

MENOS BYTES REQUEST e RESPONSE

STATEFUL

Page 51: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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 52: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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 53: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

inlinediminuir requests

priorizar conteúdo

Page 54: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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 55: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

index.html

main.js

style.css

priorizar conteúdo

cliente servidor

Page 56: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

index.html

main.js

style.css

priorizar conteúdo

cliente servidor

1

5

3

Page 57: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

index.html

main.js

style.css

index.html blocante

cliente servidor

espera

Page 58: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

cliente servidor

index.html

style.css

index.html

icone.png

Server Push

Page 59: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

cliente servidor

index.html

style.css

index.html

icone.png

Server Push

style.css  

icone.png

Page 60: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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 61: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

server push

PRIORIZAÇÃO CANCELÁVEL CACHEÁVEL

Page 62: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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 63: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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 64: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2

Page 65: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2BINÁRIO

Page 66: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2

COMPRESSÃO

BINÁRIO

Page 67: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2

COMPRESSÃOCRIPTOGRAFIA

BINÁRIO

Page 68: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

BINÁRIO

Page 69: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXINGPRIORIZAÇÃO

BINÁRIO

Page 70: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

BINÁRIO

Page 71: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

+PERFORMANCE

BINÁRIO

Page 72: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

+MOBILE+PERFORMANCE

BINÁRIO

Page 73: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

+MOBILE+FÁCIL+PERFORMANCE

BINÁRIO

Page 74: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

+MOBILE+FÁCIL+PERFORMANCE

BINÁRIO

+COMPATÍVEL

Page 75: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

+MOBILE+FÁCIL+PERFORMANCE

BINÁRIO

+COMPATÍVEL+LEVE

Page 76: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2

COMPRESSÃOCRIPTOGRAFIA

MULTIPLEXING

SERVER PUSHPRIORIZAÇÃO

+MOBILE+FÁCIL+PERFORMANCE

BINÁRIO

+COMPATÍVEL +SEGURO+LEVE

Page 77: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

spdy

Google: até 45% mais rápido

Page 78: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

otimizações web http2diminuir tráfego

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

Page 79: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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 80: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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 81: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

spdyChrome Firefox Opera IE 11 Win 8

Safari 8 iOS 8 Android 4

Page 82: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

spdynginx NodeJS

mod_spdy Jetty

Page 83: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2Firefox 34 IE Windows 10 Preview Chrome (flag)

Page 84: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2nghttp2 NodeJSRuby Jetty

Go Microsoft

Page 85: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

http 2Dez 2014 - Submit Standard Jan 2015 - Submit to RFC editor Fev 2015 - Publish Standard.

Page 86: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

USE SPDY HOJE FIQUE DE OLHO NO HTTP2 DE

AMANHÃ

Page 87: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

@sergio_caelum

obrigado!

Page 88: HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes

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

SPDY's Performance.

● Livro High Performance Browser Networking

● Especificação HTTP2