in Desenvolvimento

Performance e o HTTP/2

Performance é um fator vital em nossas aplicações web, falando de performance de front-end, ela é uma das maiores responsáveis pelo tempo que nossas páginas demoram para carregar.

O HTTP/2 é uma nova versão do protocolo de comunicação que utilizamos na web, ele vem com vários benefícios que trazem muitas melhorias para nossas aplicações.

O principal objetivo do HTTP/2 é o de reduzir a latência de comunicação, possibilitando a paralelização de requisições com multiplexing, a diminuição de overheads causados pelo protocolo (utilizando uma compressão eficiente de headers HTTP), o suporte a priorização de requisições e a possibilidade de pushs vindos do servidor.

Uma particularidade é que esta nova versão é executada somente via SSL.

Para alguns testes, deste novo protocolo, criei um projeto de um site no Github (https://github.com/rodolfofadino/poc-ssl)

image

Hospedei este site em 2 ambientes no Azure (EUA, pois queria testar em um cenário de latência):

Windows

  • Windows Server 2016 Tecnical Preview 5
  • IIS 10
  • HTTPS e HTTP
  • 1 core e 3,5 ram

Ubuntu

  • Ubuntu Server LTS 16
  • NGINX
  • HTTPS e HTTP
  • 1 core e 3,5 ram

Notem a diferença de carregamento entre a versão com HTTP/1.1 e a com HTTP/2

Exemplo de carregamento HTTP/1.1

image

Exemplo de carregamento HTTP/2

image

Em algum casos os ganhos chegam a 50% Alegre

Abaixo segue uma tabela com 10 carregamentos completos da página do projeto que coloquei no Github, com o cache do navegador desabilitado. (Medias em segundos):

image

Outra dica que queria dar é um plugin do Chrome que fica azul no canto superior do Chrome caso o site que você esteja navegando seja em HTTP/2

image

 

image

Uma informação importante é que em ambientes Windows, somente a partir do Windows Server 2016 ou do Windows 10 é possível utilizar este protocolo para servir nossos sites. Caso você já queira utilizar em produção com o Windows, será necessário configurar um proxy e servir seu site com NGINX por exemplo.

Espero que este post seja útil, estou a disposição para dúvidas, criticas e sugestões.

abs

Rodolfo

  • Douglas Aguiar

    Show de bola.

    Parabéns!!!

  • Felipe Donda

    Post bacana!