O que é o HTTP2 e quais os seus benefícios?


O HTTP2 é uma tecnologia que surgiu em decorrência de um projeto anterior, o protocolo experimental SPDY desenvolvido pelo Google. O objetivo era diminuir a latência de carregamento das páginas web através da redução dos principais problemas encontrados no HTTP/1.1.

Os aprendizados que o time de profissionais tiveram com o SPDY, tiveram grande impacto na construção do novo protocolo HTTP2. Para esclarecermos os principais pontos relacionados a essa evolução, entrevistamos o Analista de Infraestrutura da KingHost, Filipe Cifali, que trabalhou diretamente na implantação do HTTP2 em nossos servidores. Hoje, graças às inovações que serão apresentadas nessa entrevista, o novo protocolo entrega mais rapidez, simplicidade e robustez às aplicações web.

O HTTP2 está disponível para todos os clientes KingHost em plataforma Windows 2016 e Linux utilizando Apache 2.4 ou Nginx 1.11. Além disso, para ativar o acesso HTTP2 no seu site é necessário ter um certificado digital ativo no site, que pode ser o Let’s Encrypt, e abrir chamado solicitando o serviço.

Se você quer saber o que é o HTTP2 e como ele pode beneficiar os seus projetos acompanhe a entrevista abaixo.

Entrevista sobre HTTP2:

O que é o HTTP2? Qual os objetivos desse projeto?

HTTP2 é uma versão nova do protocolo HTTP/1.1 que é usado pela internet amplamente para servidores e sites. Ele permite a conversa padronizada entre cliente, em geral os navegadores, e servidor, que é onde fica armazenado o conteúdo enviado quando um site é acessado.

Qual a diferença entre HTTP1 e HTTP2?

HTTP2 apesar de manter muitas das interfaces antigas do protocolo, conseguiu inovar bastante em relação a HTTP/1.1 permitindo que aplicações utilizem métodos como multiplexing em TCP para realizar diversas requisições. O novo protocolo também aproveita opções como a priorização de requisições e compressão de cabeçalho entre outras opções.

Quais os principais benefícios dessa tecnologia?

  • A necessidade de uso do HTTPS ou HSTS em sites, o HTTP2 funciona apenas utilizando um certificado digital para os navegadores.
  • Compressão de cabeçalhos
  • HTTP/2 Server Push

Como funciona a otimização da entrega de conteúdo através do HTTP2?

Quando um navegador acessa um site, ele precisa fazer uma requisição inicial e depois uma série de conexões subsequentes para receber o conteúdo da página, desde receber as imagens até as folhas de estilo que modelam como a página será apresentada. Depois de renderizar o conteúdo todo, ele aparece no navegador. A otimização da entrega de conteúdo permite que algumas aplicações enviem o conteúdo necessário para a exibição de uma página de maneira antecipada, quando o cliente fizer a requisição inicial, ele já irá receber uma série de requisições mínimas necessárias.

Como exemplo podemos pensar no seguinte cenário em HTTP/1.1:

cliente requisita site.com.br/index.html

servidor envia o arquivo index.html para o cliente

cliente processa index.html

cliente então requisita site.com.br/estilo.css

cliente então requisita site.com.br/menu.js

cliente então requisita site.com.br/header.png

servidor envia o arquivo estilo.css para o cliente

servidor envia o arquivo menu.js para o cliente

servidor envia o arquivo header.png para o cliente

cliente processa a página completa (index.htm+menu.js+estilo.css+header.png)

Onde no HTTP2 ocorreria a seguinte sequência:

cliente requisita site.com.br/index.html

servidor envia o arquivo index.html para o cliente

servidor sabe que já precisa enviar estilo.css

servidor sabe que já precisa enviar menu.js

cliente processa index.html

cliente então requisita site.com.br/header.png

servidor envia o arquivo header.png para o cliente

cliente processa a página completa (index.htm+menu.js+estilo.css+header.png)

A diferença está justamente na ordem de recebimento dos arquivos , dependendo da página, como por exemplo, portais de notícias, irá existir inúmeras imagens distribuídas que podem ser carregadas e alinhadas depois do processamento dos arquivos de estilo da página, tornando a experiência do usuário mais amigável.

O que é o Server Push?

Server Push é a habilidade do servidor de enviar conteúdo ao cliente sem que ele tenha requisitado aquele conteúdo ainda. Com as mudanças que ocorreram no protocolo, a comunicação passou a ser feita através de quadros dentro de fluxos de conexão permitindo com que o desenvolvedor possa enviar algum conteúdo antes mesmo do cliente ter feito a requisição. Essa funcionalidade é vantajosa quando se deseja ter uma interação mais dinâmica com o usuário.

Já é possível usar o HTTP2 em todos os navegadores?

Os principais navegadores em suas versões mais recentes já contam com o suporte ativado. Assim, é essencial dispor de servidores que possam servir o conteúdo através do novo protocolo. Alguns navegadores inclusive exibem a forma de acesso em suas ferramentas de análise de rede.

O site que estiver hospedado em um servidor com HTTP2 perderá acessos que vierem de navegadores sem o suporte?

Sim, o servidor sabe conversar tanto em HTTP/2 quanto HTTP/1.1 de maneira transparente, o que ocorre é que o navegador primeiro irá tentar a conexão HTTP/2 por padrão e caso o servidor não saiba responder ela, ele irá transformar a requisição em HTTP/1.1 automaticamente sem precisar ter uma nova conexão.

Existem benefícios de segurança com HTTP2? Ele requer encriptação?

O HTTP2 pode ser usado em modo h2c para clientes específicos, o que não força a necessidade de um certificado, mas esta forma não é aceita por nenhum navegador disponível, todos usam somente ‘h2’ que é o HTTP2 sobre encriptação, obrigando a necessidade de um certificado digital como Let’s Encrypt para que o protocolo seja de fato utilizado.

Concluindo

Com o HTTP2 as melhorias são transparentes, pois para aproveitar os benefícios você não precisará alterar seu site ou aplicação, mesmo com a mudança de acesso, eles continuaram funcionando normalmente. Além do seu site rodar sem interrupção, ele provavelmente funcionará com melhor desempenho e de forma mais segura.

Leonéia Evangelista

Leonéia Evangelista

Analista de Conteúdo em Kinghost
é bacharel em Comunicação Digital pela Unisinos e mestre em Bibliotecas Digitais pelo programa Digital Library Learning (Erasmus Mundus).
Leonéia Evangelista

Últimos posts por Leonéia Evangelista (exibir todos)

Comentários

comentário(s)