HTTP2 promessa de melhorias e a realidade SPDY do Google

HTTP2 e SPDY

Pessoal, abordarei neste artigo o tema Realidade SPDY e a promessa HTTP2,  visto que depois de muito tempo sem escrever nada para o blog devido a falta de tempo, acordei hoje inspirado para compartilhar uma novidade que alguns já conhecem e outros nem tanto. 

 
Já não é novidade que a WEB evolui assustadoramente todos os dias, para quem desenvolve para ela então nem se fale, estamos passando por lançamento de ferramentas, padrões, melhorias em linguagens o tempo todo. As páginas estão cada vez mais carregadas de recursos como som, vídeo, animações e imagens em abundância, temos o HTML5 que suporta diversas funcionalidades o CSS3 que traz animações incríveis, evolução contínua do ECMAScript (JavaScript) e etc., visando acompanhar todas essas mudanças está sendo proposto uma nova especificação para o HTTP2.
 
Mas o protocolo HTTP que transporta todo conteúdo entre o servidor WEB e a máquina do cliente, esse não evoluiu e já está ficando ultrapassado devido as evoluções citadas acima. Estamos falando do velho de guerra HTTP /1.1 (HyperText Transfer Protocol) português “Protocolo de Transferência de HiperTexto“. O HTTP em sua versão 1.1 foi construído na década de 90 para trabalhar com páginas estáticas, poucas imagens e consequentemente baixo volume de requisições e transferência de dados, nos dias de hoje a cenário é bem diferente e exige muito desse protocolo.
 
Pensando nisso em novembro de 2009 a gigante Google resolveu iniciar o desenvolvimento de um protocolo para suprir as necessidades do dias atuais, esse protocolo recebeu o nome de “SPDY” abreviação de “SPeeDY“. Segundo testes publicados pelo Google e realizados em ambientes controlados, com a utilização desse protocolo algumas páginas chegaram a abrir entre 23% a 50% mais rápidas do que o normal.

Post relacionado:  TDC 2016 São Paulo - Trilha Modern WEB

Protocolo SPDY Google

 

Mas o que esse SPDY tem de diferente do HTTP /1.1 e porque serve como base para o HTTP2?

Basicamente esse novo protocolo mudou a forma de comunicação entre o browser e o servidor WEB:

– Cabeçalhos de request e response são comprimidos automaticamente, diminuindo assim o fluxo de dados na rede. Os cabeçalhos são menos redundantes, somente são transferidas informações de cabeçalho que forem diferentes entre as requisições.

– Antes precisávamos abrir de 4 – 6 conexões simultâneas para domínios diferentes e assim acelerar o carregamento de apenas uma página com requisições de imagens e folhas de estilo (CSS), com o SPDY em apenas uma conexão é possível enviar várias requisições, trazendo um paralelismo no carregamento da página.

– Browser pode decidir qual requisição tem maior prioridade para o carregamento da página, mesmo assim requisições com baixa prioridade não serão bloqueadas.

– Servidor pode enviar conteúdo para o browser mesmo sem ter ocorrido uma requisição explicita (existe uma discussão sobre os impactos negativos dessa funcionalidade)

– Protocolo SPDY obriga o uso de conexões seguras com HTTPS. (outro ponto de discussão)

O protocolo ainda não está terminado mas já é possível desfrutar dessa velocidade em alguns serviços do próprio Google como Buscador, GMail, Docs e etc. Existe uma extensão disponível Chrome Web Store que pode ser instalada no Chrome e indica se determinada página possui suporte ao protocolo SPDY. Abaixo segue a lista de navegadores que suportam esse protocolo atualmente no mercado:

Lista de navegadores que suportam  o protocolo SPDY


Outro ponto que mostra a evolução e adesão do SPDY, o servidor WEB Apache já possui um módulo para dar suporte a esse novo protocolo!

Proposta da Especificação para o HTTP2

Agora que já conhecemos um pouco do SPDY é possível falar da versão 2 do HTTP, isso porque a especificação do HTTP2 está sendo escrita com base no protocolo desenvolvido pelo Google.

Graças ao Sr. Mark Nottingham que iniciou a escrita do rascunho para proposta de especificação e atualmente Internet Engineering Task Force está finalizando, acredita-se que em breve (boatos que até mesmo em 2014) a proposta será submetida. São poucas as diferenças entre o SPDY e a especificação do HTTP2, talvez o ponto principal seja que os headers (cabeçalhos) serão enviados na forma de binários, atualmente são enviados na forma de texto.
 
Enfim, mais mudanças podem estar a caminho mas sempre estamos naquela dependência da aprovação das especificações, mas vejo em um futuro próximo melhorias expressivas para o desenvolvimento WEB.
 
Essa semana estive no evento do TABLELESS 2014 e senti falta desse tema entre as palestras, vários temas discutidos lá são features que podem aparecer no mercado daqui à 2 ou 3 anos, sendo bem generoso ainda. Outro ponto importante é que o protocolo SPDY já é uma realidade em vários browsers modernos e o HTTP2 está naquela velha e boa história de especificação, o que lembra muito nossos velhos e bons amigos HTML5 e CSS3, que com sorte estarão finalizados em 2020 segundo rumores na comunidade outros já se arriscam a dizer que nunca ficará pronto.
 
Bom pessoal, nesse artigo procurei descrever um pouco do funcionamento do protocolo SPDY e do futuro do HTTP2, para quem quiser conhecer mais a fundo o que está sendo proposto para especificação do HTTP2 aconselho a dar uma lida no draft (rascunho) da proposta
 
Até a próxima …
Post relacionado:  Arquivos .htaccess do Apache para que servem e como funcionam? Confira nesse post como criar e configurar regras no seu arquivo .htaccess
Show Buttons
Hide Buttons