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.
Ouça o conteúdo completo!
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.
O que você achou deste conteúdo?