Autor: Cristiano Cordeiro

  • Conheça as diferenças entre HTTP/1.1 e HTTP/2

    Conheça as diferenças entre HTTP/1.1 e HTTP/2

    Acrônimo para Hypertext Transfer Protocol, o HTTP é o protocolo utilizado para enviar e receber informações na web, sendo baseado em requisições e respostas entre clientes e servidores. O funcionamento básico é o seguinte: o cliente — navegador ou dispositivo que fará a requisição — solicita um determinado recurso, enviando um pacote de informações contendo alguns cabeçalhos a uma URL. O servidor recebe essas informações e retorna uma resposta.

    Como tudo começou

    O HTTP tem sido usado desde 1991. A primeira versão do protocolo, chamada HTTP/0.9, era um protocolo simples para a transferência de dados no formato de texto ASCII pela Internet. A versão HTTP/1.0 foi liberada em 1996 com a finalidade de suprir a necessidade de transferir não apenas texto. Passou-se a considerar dados mais ricos, metadados da requisição e resposta e negociação de conteúdo, por exemplo.

    A terceira versão, 1.1, foi disponibilizada em 1999. Seu lançamento é considerado um marco e define o padrão da Internet. O protocolo HTTP/1.1, além de resolver inúmeras ambiguidades da versão 1.0, inseriu melhorias críticas de performance.

    A partir dos anos 2000, através do boom na utilização da Internet, a quantidade de dispositivos conectados a ela cresceu exponencialmente. Com esse crescimento exorbitante surgiu a necessidade de melhorias de performance. Foi assim que em 2009 nasceu o SPDY, um protocolo criado por engenheiros da Google para avançarem nos problemas de performance do HTTP/1.1.

    Esses movimentos chamaram a atenção do HTTP Working Group (HTTP-WG). Em 2015, 16 anos após o lançamento do HTTP/1.1, surgiu o HTTP/2. Sem alterar a semântica do protocolo, as melhorias significativas são na performance de transporte das informações além de uma latência menor e maior rendimento.

    Principais características do HTTP/2

    Para entender melhor sobre o HTTP/2, observe as características a seguir.

    Única conexão e multiplexação

    O HTTP/1.1 é um protocolo sequencial, onde o navegador abre apenas uma conexão TCP, solicita um arquivo, e somente após recebê-lo solicita o próximo. Se um arquivo é muito grande, ou o processamento por parte do servidor for muito lento, pode travar o carregamento da página. Para minimizar isto, os navegadores normalmente abrem múltiplas conexões, entre 6 e 8, por servidor. Já no HTTP/2, uma conexão TCP será persistente e precisará somente de uma por origem, onde requisições e respostas paralelas poderão requisitar/receber todos os arquivos necessários.

    Isso traz uma redução no consumo de processamento e memória, uma redução no custo operacional das redes e uma maior capacidade de uso. O resultado é uma redução de latência na rede e redução de custo em hardware e software.

    Multiplexação

    Camada de enquadramento binário

    Este é o núcleo de todas as melhorias de desempenho de HTTP/2, que determina como as mensagens HTTP são encapsuladas e transferidas entre o cliente e o servidor. Foi redesenhado o mecanismo de codificação sem alterar a semântica dos métodos, verbos e cabeçalhos. A comunicação é quebrada em frames, em uma única conexão TCP.

    Enquadramento Binário

    Priorização de requisições

    Possibilita ao navegador requisitar todos os elementos quando descobertos, comunicando ao servidor sua intenção de priorizar algum deles. Isto é feito através das dependências e pesos das streams. Pode-se citar um exemplo onde são requisitados arquivos CSS e arquivos JS, onde no HTTP/2 o comportamento do navegador será de priorizar primeiro os arquivos CSS, mesmo que sua requisição na ordem do DOM venha depois dos JS.

    Priorização de requisições

    Server Push

    Permite ao servidor enviar múltiplas respostas ao cliente, a partir de uma única requisição, sem que o cliente tenha solicitado explicitamente. Imagine o cenário: o navegador de internet requisita o arquivo HTML da página; o servidor responde com o arquivo requisitado e já envia também o arquivo CSS, JavaScript, ícones e outras coisas mais.

    Server Push

    Compressão automática

    As requisições HTTP possuem cabeçalhos com informações importantes sobre o recurso e suas propriedades. Com o HTTP/2 os cabeçalhos são comprimidos através do algoritmo HPACK, reduzindo assim o tamanho de cada transferência, além de manter e atualizar uma lista indexada de campos de cabeçalhos vistos anteriormente. Além disso, a compressão de dados através do GZIP, que precisa ser habilitada no HTTP/1.1, se torna padrão na versão 2.

    Compressão automática

    Segurança e criptografia de dados

    O protocolo HTTP/2 foi implementado para trabalhar com ou sem criptografia. No entanto, os principais navegadores declararam que irão suportar HTTP/2 somente com criptografia, sendo necessário então a utilização de um certificado SSL.

    Dados criptografados

    Conclusão

    Aplicações web como o Fusion Cloud, através da implementação do HTTP/2, estão mostrando melhoras de desempenho significativas, apresentando uma grande diferença no tempo de carregamento das páginas, possibilitando assim uma redução de custos com hardware e melhor experiência de navegação para os usuários.


    Referências:
    Wikipedia, Google Web Fundamentals, KingHost, HPBN, Apiki.


  • Vantagens gerais e específicas do Big Data: mostramos tudo aqui!

    Vantagens gerais e específicas do Big Data: mostramos tudo aqui!

    A partir do início do século XXI, com a alta demanda e o grande anseio por tecnologia, a quantidade de dados e informações geradas se tornou volumosa. Para você ter uma ideia, estudos apontam que o conteúdo gerado no mundo digital está dobrando a cada dois anos.

    (mais…)
Fale com a gente