SPDY, HTTP2 e por que você deveria conhecê-los

SPDY, HTTP2 e por que você deveria conhecê-los

Todos os dias, uma quantidade absurda de páginas, arquivos e e-mails trafegam pela Internet. Essas informações podem ser transmitidas de forma segura graças à padronização da forma de transmissão dessas informações, ou seja, meu computador sabe exatamente como conversar com o servidor do blog da ValueHost para pegar um post ou como conversar com meu servidor de e-mail para enviar uma mensagem para um amigo. A essas padronizações chamamos de protocolos, e um dos mais usados na Internet é o HTTP (HyperText Transfer Protocol ou Protocolo de Transferência de Hipertexto).

O protocolo HTTP é o protocolo usado pelo seu navegador para acessar os sites do seu dia-a-dia. Ele tem uma variante que adiciona criptografia à comunicação com o servidor, o HTTPS. Você pode conferir isso olhando o endereço que você está acessando: ele deve começar com http (ou https, se você estiver num site seguro). Esse protocolo começou a surgir junto com a popularização da Internet, no início da década de 1990. Desde então, passou por algumas modificações até chegar na versão atual: 1.1.

O problema é que a versão atual do HTTP não é tão atual assim: ela é de 1999. Desde então, a forma como utilizamos a Internet mudou bastante: sites mais elaborados, dispositivos móveis, banda larga… Por outro lado, o protocolo continua o mesmo. Com essas mudanças na forma de uso, o protocolo HTTP começou a se tornar um gargalo no desempenho dos sites.

A Google, uma empresa sempre muito preocupada com o desempenho de seus serviços, decidiu atacar os problemas do HTTP desenvolvendo seu próprio protocolo, o SPDY. Esse protocolo, na verdade, pode ser visto como uma camada a mais no protocolo HTTP, pois as ideias originais do protocolo HTTP (cabeçalhos, métodos etc.) continuam valendo da mesma forma que antes. O que muda é que, agora, esses cabeçalhos e todos os dados são transmitidos obrigatoriamente compactados e criptografados. Além disso, uma mesma conexão pode ser aproveitada para a transmissão de diversas requisições ao mesmo tempo, um recurso conhecido como multiplexação. Usando esses recursos, o tempo de carregamento de sua página pode cair mais de 40%, dependendo da situação, sendo que os maiores ganhos são registrados em conexões piores, onde qualquer ganho é bastante perceptível para o usuário. Vale notar, então, que, por ser apenas uma camada a mais sob o HTTP, sua aplicação não precisa mudar para que você comece a trabalhar com SPDY.

O protocolo SPDY vem evoluindo e ganhando suporte por parte dos servidores e navegadores. A versão mais recente do protocolo, 3.1, é suportada apenas pelos navegadores Chrome e Opera, mas o Firefox a suportará a partir da próxima versão (27). No entanto, a versão anterior (versão 3) é suportada pelo Internet Explorer 11 e pelo Firefox desde a versão 15. O protocolo também é suportado pelas versões móveis desses navegadores e pelo navegador padrão do Android desde a versão 3.0 do sistema. Nos navegadores em que não há suporte, a conexão é feita via HTTPS, ou seja, o usuário continua tendo acesso normal ao site. Do lado dos servidores, existe um módulo para o Apache httpd que ativa suporte ao protocolo: o mod_spdy; o servidor nginx também tem suporte à versão 3.1 do protocolo desde sua versão 1.5.10, sem necessidade de plugins. Além disso, existe uma implementação de um servidor em Ruby, uma implementação para o Node.js e, no mundo Java, o servidor Jetty já suporta o protocolo nas versões mais recentes e o Tomcat já conta com um suporte experimental em sua versão 8.

Vale notar ainda que alguns serviços muito utilizados por todos, como o Google, o Facebook e o Twitter, já usam o protocolo SPDY. Além disso, se sua aplicação está hospedada no Google App Engine e tem um certificado SSL, ela já está usando SPDY!

O protocolo SPDY vem demonstrando ótimos resultados e, por isso, está servindo como base para uma grande atualização do próprio protocolo HTTP. A especificação do protocolo HTTP/2.0 já está no seu nono rascunho (que conta com diversas implementações) e a versão final é prevista ainda para esse ano. Com a padronização dessas alterações no protocolo HTTP, a tendência é que vejamos sites carregando cada vez mais rápido nos próximos anos, independente da banda disponível crescer.

Deixe um comentário

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of