Alegre-se! Chegou o HTTP/2!

Quero ser cliente da PortoFácil!Contato

 

Uma das coisas mais óbvias que se podem dizer a respeito de donos de sites na Internet é que eles querem o máximo possível de velocidade; depois o máximo possível em amor por parte do Google; e, claro, segurança nunca é demais. Isso tudo porque são esses os três fatores não vinculados à aparência do site responsáveis pela visitação que as páginas recebem.

Há aproximadamente um ano era lançado o HTTP/2, segunda versão do protocolo HTTP que é a base da web como conhecemos. É uma atualização desejável que contempla os três fatores acima descritos, agora sem necessariamente custar mais caro para quem mantém um ou vários sites.

A inovação tecnológica do HTTP/2: multiplexação

A principal diferença entre as versões antigas e nova do HTTP diz respeito a um recurso chamado de “requisições multiplexadas”.

Para entender o significado desta mudança é necessário primeiro recapitular a especificação do HTTP/1 a fim de criar um parâmetro de comparação.

Quando um cliente HTTP requisita uma URL (normalmente uma página) ele recebe um documento que referencia outros objetos que são necessários à correta exibição daquele conteúdo: arquivos CSS, JavaScript, imagens, e outros. No HTTP/1 cada objeto desse é requisitado sequencialmente (na verdade há uma média de 4-6 requisições simultâneas, mas para efeitos didáticos vamos ignorar este dado), interpretado e, quando for caso, exibido na tela do dispositivo de navegação (computador, tablet, celular, etc). Cada conexão deve ser completada e fechada para que a próxima possa ser aberta e o próximo objeto processado.

Já no HTTP/2 em vez de haver uma requisição para cada objeto existe uma única conexão entre o dispositivo visitante (cliente) e o servidor web. Todos os objetos são enviados do servidor para o cliente através dessa mesma conexão, que só é encerrada quando a página toda está carregada e não há mais objetos a serem transferidos (ao menos na maior parte dos casos).

Essa diferença entre muitas conexões (dependendo da página podem ser centenas) e uma única, associada aos protocolos de compactação de conteúdo (popularmente conhecido como “gzip”) que também fazem parte da especificação do HTTP/2, pode representar ganhos de desempenho de até 300% ou mais. Há casos em que pudemos observar ganhos até acima desta marca.

Simplificação do desenvolvimento

Para os programadores front-end, então, o HTTP/2 é um sonho que se realiza: devido à multiplexação técnicas até então “atuais” de otimização deixam de fazer sentido. Exemplos:

  • CSS Sprites: como todas as imagens de uma página são transmitidas em conjunto numa única requisição TCP, mas ficam disponíveis individualmente no cache do navegador, não há mais necessidade de utilizar-se do recurso de juntar todas as imagens em uma só e “recortá-la” usando CSS.
  • Lazy Loaders: também por causa da multiplexação já não faz mais sentido o uso de lazy loaders, scripts que servem para que as imagens da página sejam carregadas somente à medida que forem necessárias; seu uso em sites HTTP/2 quebra justamente a funcionalidade mais importante da nova versão do protocolo.
  • Pre-loaders: pelo mesmo motivo pelo qual não vale a pena fazer o carregamento tardio de imagens num site usando HTTP/2, não há mais motivo para fazer o carregamento antecipado. A regra geral diz que é preferível deixar a critério dos programas (cliente e servidor) a decisão sobre o que carregar primeiro, uma vez que ambos estão sintonizados no objetivo de propiciar o carregamento mais rápido possível de uma página num dado momento.
  • CDNs: se antes era uma estratégia recomendável distribuir os objetos do site por múltiplos domínios com o fito de otimizar o uso de conexões TCP paralelas, com a multiplexação este uso deixa de ser assim tão desejável; não que as CDNs estejam mortas (longe, muito longe disso), mas sim que seu uso agora deverá ser melhor avaliado (assim como o carregamento de web-fonts que não estejam no próprio domínio do site, ou de bibliotecas como a jQuery a partir de servidor de terceiros).

HTTP/2 é um protocolo criptografado

O HTTP/2 foi desenvolvido em cima do SPDY, um protocolo criado pela Google cujo objetivo era acelerar  a Internet e ao mesmo tempo torná-la mais segura: o navegador só utilizaria as melhorias do SPDY se o site estivesse operando em HTTPS, ou seja, caso tivesse um certificado SSL válido e funcional nele.

O HTTP/2 acabou “herdando” essa característica, talvez por força de uma eventual pressão dos fabricantes de navegadores que recusaram-se a implementar a nova versão do HTTP para sites não seguros.

Parece que o jogo virou, não é mesmo?

Assim, a Internet está presenciando uma virada de jogo sensacional: há não muito tempo (2015, por exemplo) o HTTPS ainda era conhecido por ser um protocolo lento, devido à necessidade de uma camada extra de processamento para criptografar os dados no servidor, e para descriptografar no cliente. Agora, com o advento do HTTP/2, o HTTPS é muito mais rápido do que o HTTP/1, pois a economia de recursos promovida pela multiplexação de requisições TCP supera largamente o trabalho extra na camada de criptografia.

O amor do Google

Se acelerar o site e torná-lo mais seguro (e subjetivamente mais confiável aos olhos do visitante médio) já não fossem atrativos bastantes para o HTTP/2, ele conta com um outro fator: já faz algum tempo que é de conhecimento público que a criptografia é um dos “sinais de ranqueamento” que o indexador utiliza para priorizar (ou não) a aparição de uma determinada URL nas páginas de resultado.

HTTP/2 é HTTPS e requer certificado válido

Há não muito tempo (ainda em 2015, 2014) o custo de um certificado SSL era proibitivo. Quem precisasse criptografar alguns domínios teria de desembolsar uma soma considerável, que para muita gente seria impeditivo (inclusive para muita gente “graúda” do mercado).

Como já dissemos isso é resultado dos fabricantes de navegadores, mais notadamente da Google com seu quase onipresente Chrome, que se recusam a suportar os recursos do HTTP/2 em conexões não criptografadas.

Certificados SSL gratuitos

Entretanto, muitas entidades certificadoras resolveram render-se ao mercado e passaram a oferecer certificados mais simples a baixo custo ou até mesmo gratuitamente.

As opções mais viáveis em se tratando de certificados gratuitos, no momento em que redigimos este texto, são a CloudFlare (para os usuários de seu serviço de cache) e a Let’s Encrypt (para instalação no servidor do cliente).

Recomendamos o SSL “flexível” da CloudFlare para quem tenha (ainda) um servidor cPanel, já que nós não damos suporte aos protocolos da Let’s Encrypt nesta plataforma. Como o certificado é da CloudFlare não há necessidade de preocupação com renovação do certificado.

Para os clientes de servidores sem painel de controle (nominalmente VPSs NX) recomendamos, em linhas gerais, o certificado gratuito da Let’s Encrypt, cuja instalação e renovação fica a encargo de nosso suporte.

Quando usar e quando não usar HTTP/2

Recomendamos a utilização de HTTP/2 em todo e qualquer site na Internet, exceto no caso de uma das situações abaixo.

  • Quando sua audiência for predominantemente de usuários de Windows XP: os certificados gratuitos Let’s Encrypt não são, ainda, compatíveis com o finado Windows XP; todos os sistemas operacionais modernos de plataformas móveis ou desktop são plenamente compatíveis com os certificados Let’s Encrypt e CloudFlare.
  • Quando o site veicular anúncios ou outros objetos HTTP e que não seja possível convertê-los para HTTPS: há casos de redes de anúncios que não oferecem seus códigos de anúncios em HTTPS; nesse caso a adoção do HTTP/2 poderá representar queda de receita para o site, justificando assim esperar até que os patrocinadores reconheçam a necessidade de adequar-se aos padrões mais recentes e mais seguros.

Felizmente é bem fácil de reverter o processo de migração de HTTP/1 para HTTP/2.

Como ativar o HTTP/2 no seu site

É muito simples ativar o HTTP/2 no seu site: basta entrar em contato conosco por meio de um chamado de suporte e pedir uma avaliação. Se não houver nenhum impedimento, em questão de minutos seu novo site estará chutando bundas com o que há de mais recente em tecnologia de serviço web!

 

Quero ser cliente da PortoFácil!Contato

Compartilhe

Ajude o cache do WordPress a ajudar seu site
Publicado por Janio Sarmento – 18 de janeiro de 2016, em Ferramentas