O que é SPDY? O que o Google quer com isso?
Quando se trata de Web, o Google é uma fábrica de inovação. E quando o desempenho é o problemas eles sempre tem uma carta na manga. Com o objetivo de tornar a web mais rápida e eficiente, a gigante das buscas deu início a uma iniciativa chamada “Lets make the web faster”. Essa iniciativa propõe a adoção de um conjunto de boas práticas para tornar o tráfego utilizado via HTTP mais rápido. Essas boas práticas são medidas simples e bem elaboradas para otimizar o tamanho de imagens, redução de espaços em branco de JavaScript, compressão de documentos HTML e etc. Porém, o que mais me chamou a atenção foi a utilização de um novo protocolo para trabalhar em conjunto com o HTTP, o SPDY.
O SPDY, como o Google diz, nada mais é do que um protocolo para transporte de conteúdo através da internet, que foi projetado para gerar o mínimo de latência possível. De acordo com os testes feitos nos laboratórios do Google, o tempo de caga das páginas tiveram o tempo reduzido em torno de 64%. Realmente é um tempo considerável, mas do que se trata esse protocolo, o que ele faz pra ser tão rápido?
O protocolo utilizado na rede mundial de computadores é o TCP/ÍP. Esse protocolo encontra-se, segundo o modelo OSI, na camada de transporte que visa garantir a entrega dos pacotes de uma origem até seu destino. A utilização desse protocolo com o HTTP proporciona que os browsers abram um conexão a cada request e response. Nesse processo, a latência gerada vem da única requisição por conexão TCP/IP feita pelo browser, cada requisição é feita pelo cliente (browser) tornado o WebServer um robô sem inteligência enviando/recebendo na maioria das vezes um conteúdo que poderia ser comprimido. Ainda por cima, o padrão de envio de documentos não comprimida, coisa que poderia ser feita utilizando algumas boas práticas.
Com a utilização do SPDY em conjunto com o HTML os ganhos de desempenho são obtidos implementado funcionalidades que eliminariam as características citadas acima como:
- Streams multiplexadas: Possibilidade de suportar inúmeras requisições e respostas através de uma conexão TCP.
- Request Priorization: Essa implementação permite que o cliente possa fazer uma série de requisições do servidor e o mesmo respondendo-as de acordo com a prioridade da mesma.
- HTTP header compression: Implementação da compressão do header resultando em pacotes menores de menos bytes transmitidos.
Esses são os itens básicos que o novo protocolo foi designado para resolver. Existe uma série de melhorias na pagina do protocolo. Lá é possível encontrar maiores detalhes sobre o desenvolvimento do mesmo e a bateria de testes e seus resultados.
A idéia do Google não é substituir o HTTP para processar as requisições WEB, e sim fazer com que ambos os protocolos trabalhe em conjunto. Nesse ponto os engenheiros do Google tiveram bom senso, já que, implementar a troca do HTTP (cliente) contida nos navegadores seria uma tarefa não só tecnológica e sim política decidiram implementar o mesmo nos Web Serves.
Já que o protocolo inda não está disponível, portanto, para tornar a web mais rápida podemos seguir as iniciativas do Lets make the web faster. Com a adoção de medidas simples como essas há uma melhoria considerável da latência em cada página carregada.
Mais detalhes: aqui, aqui e aqui
[]s