HTTP 2

1.042 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.042
No SlideShare
0
A partir de incorporações
0
Número de incorporações
36
Ações
Compartilhamentos
0
Downloads
12
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

HTTP 2

  1. 1. HTTP/2 Pedro Araujo / @pedrotcaraujo
  2. 2. Pedro Araujo Desenvolvedor front-end @pedrotcaraujo
  3. 3. QUEM JÁ OUVIU FALAR EM HTTP2?
  4. 4. QUEM JÁ OUVIU FALAR EM SPDY?
  5. 5. HTTP (OVERVIEW): ● Principal protocolo da Web ● Funciona no modelo de requisição e resposta ● HTTP/1.0 foi desenvolvido em 1996 ● Ultima atualização em 1999 com o HTTP/1.1 (RFC 2616) SIM, 1999!
  6. 6. QUEM É NOSSO MAIOR INIMIGO?
  7. 7. INTERNET EXPLORER?
  8. 8. DIVERSIDADE DE RESOLUÇÕES?
  9. 9. OU SERIA A LATÊNCIA?
  10. 10. POR QUE A LATÊNCIA É O PROBLEMA? PORQUE A WEB MUDOU!
  11. 11. http://httparchive.org/
  12. 12. ● Total transfer size: 720kb para 1900kb por página web ● Total requests: 70 para 100 por página web Dados de 2011 a 2015 http://httparchive.org/
  13. 13. ● 3G no Brasil tem média de 195ms de latência ● 4G no Brasil tem média de 58ms de latência ESTAMOS NA ERA MÓVEL http://opensignal.com/
  14. 14. MAIS BANDA LARGA NÃO IMPORTA (MUITO) https://www.belshe.com/2010/05/24/more-bandwidth-doesnt-matter-much/ - Mike Belshe
  15. 15. PERFORMANCE É IMPORTANTE O crescimento rápido do mundo da otimização de performance da Web no passar dos anos vem da importância da velocidade na experiência do usuário. ● Sites mais rápidos lidam com melhor engajamento do usuário ● Sites mais rápidos lidam com melhor retenção do usuário ● Sites mais rápidos lidam com alta conversão
  16. 16. PARA UMA WEB MAIS RÁPIDA! HTTP/2
  17. 17. PREOCUPAÇÕES DO HTTP 1.1? ● Uso inadequado do TCP ● HEAD OF LINE BLOCKING ● Muitos, eu disse MUITOS workaraounds
  18. 18. UM POUCO DO TCP: ● Esconde a complexidade da comunicação de rede ● Garante a entrega dos dados idênticos e na mesma ordem ● Precisão e distribuição ● Three-way HANDSHAKE: SYN, SYN ACK e ACK
  19. 19. HTTP 1.1 (keep-alive) 4 a 8 conexões
  20. 20. FIFO (first in first out) HTTP 1.1 (pipelining) HEAD OF LINE BLOCKING
  21. 21. WORKARAOUNDS OPTIMIZAÇÕES̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶
  22. 22. SPRITING
  23. 23. DATA URIs
  24. 24. DOMAIN SHARDING
  25. 25. HTTP 2.0 Binário Header compression (HPACK) Multiplexing Server Push
  26. 26. HTTP/2 (OVERVIEW): ● Principal objetivo é reduzir a latência ● Usa somente uma conexão TCP ● NÃO modifica a semântica do HTTP (methods, status code, URIs, etc) ● Baseado no SPDY
  27. 27. HTTP/2 BINÁRIO ● A camada binária esta no core do HTTP/2 ● Messages são separados em vários frames ● Possui sistema de priorização de streams ● Responsável permitir requests e responses multiplexing ● Precisa de uma ferramenta para inspecionar. (Wireshark - http://wireshark.org)
  28. 28. HEADER COMPRESSION ● Cada header descreve o recurso a ser transferido e suas propriedades ● Média de 500 – 800 bytes ● GZIP foi registrado como inseguro na versão com SPDY HPACK
  29. 29. MULTIPLEXED STREAMS ● Uma única conexão TCP por host ● Multiplos requests sem bloquear nenhum ● Multiplos responses sem bloquear nenhum ● Remove desnecessários workaraunds
  30. 30. SERVER PUSH Server Push evita um round trip, enviando os assets que ele acha que o client irá precisar. Server Hint é um mecanismo onde o servidor pode notificar o cliente de um recurso que vai ser necessário.
  31. 31. HTTP/2 = SPDY
  32. 32. SPDY (overview): ● Protocolo experimental feito pelo Google feito em 2009 ● Objetivo de diminuir o Page Load Time em 50% ● Minimizar a complexidade de deployment ● Evitar mudanças de infra-estrutura de rede ● Desenvolver um protocolo com a comunidade open-source ● Obter o ganho de performance para (in)validar o protocolo
  33. 33. http://blog.chromium.org/2015/02/hello-http2-goodbye-spdy-http-is_9.html
  34. 34. https://docs.google.com/presentation/d/1BVyBcR5AE2kwY7akcmM0O3dDJ5TccY3ew0U9Ux7wsQs/pub?slide=id.p
  35. 35. SUPORTE
  36. 36. https://github.com/http2/http2-spec/wiki/Implementations
  37. 37. https://caddyserver.com/
  38. 38. http://browserdiet.com/pt/
  39. 39. QUER IR ALÉM?
  40. 40. MAIS... ● HTTP/2 (IETF HTTP Working Group) - https://http2.github.io/ ● High Performance Browser Networking - http://chimera.labs.oreilly.com/books/1230000000545/ch12.html ● HTTP2 for front-end web developers - https://mattwilcox.net/web-development/http2-for-front-end-web-developers ● Need for Speed 2: Improving Front-End Performance - https://jonsuh.com/blog/need-for-speed-2/ ● HTTP/2 - Let’s Surf Like It’s 2015 - https://www.linkedin.com/pulse/http2-lets-surf-like-its-2015-rajat-taneja
  41. 41. em português... ● SPDY, HTTP2 e por que você deveria conhecê-los - http://blog.caelum.com.br/spdy-http2-e-por-que-voce-deveria-conhece-los/ ● HTTP 2.0 tem sua primeira versão publicada - http://www.infoq.com/br/news/2012/12/http-20-draft-publicado ● As fantásticas novidades do HTTP 2.0 e do SPDY - http://blog.caelum.com.br/as-fantasticas-novidades-do-http-2-0-e-do-spdy/ ● HTTP/2 - Atualização do protocolo base da internet - http://tableless.com.br/http2-atualizacao-do-protocolo-base-da-internet/ ● Simplificando o HTTP 2.0 - http://betomuniz.com/blog/simplificando-o-http-2-0/
  42. 42. blog.concretesolutions.com.br www.concretesolutions.com.br São Paulo Rua Sansão Alves dos Santos, 433 4º andar - Brooklin, São Paulo CEP: 04565-001 Tel.: +55 11 4119-0449 Rio de Janeiro Rua São José, 90 Sala: 2121 Centro, Rio de Janeiro CEP: 20010-020 Tel.: +55 21 2240-2030 OBRIGADO!

×