O que é HTTP / 2 e o que ele faz?



Experimente Nosso Instrumento Para Eliminar Problemas

Nos últimos 20 anos, a World Wide Web evoluiu dramaticamente. Todas as tecnologias web aprimoradas exigem soluções e protocolos melhores e mais rápidos para comunicação e transferência de arquivos do que os atuais (HTTP) que estão atingindo seus limites tecnológicos.





O que é HTTP / 2?

HTTP / 2 é a versão mais recente do hipertexto Protocolo de Transporte (HTTP) - o protocolo subjacente usado pela World Wide Web . Foi inicialmente aprovado em fevereiro de 2015. Isso é quase 20 anos após o HTTP original. HTTP / 2 reduz os tempos de carregamento e traz grandes melhorias na comunicação entre servidores e navegadores. A maioria dos navegadores já adicionou HTTP / 2, e isso não mudou muitas coisas da perspectiva dos usuários. Essa é a principal razão pela qual muitos de nós ainda não lemos ou ouvimos falar dele.



O que o HTTP / 2 faz?

Como sucessor do HTTP, HTTP / 2 se concentra em melhorar todas as características do HTTP . Para manter a compatibilidade com versões anteriores com o protocolo mais antigo, ele mantém a maior parte da funcionalidade do HTTP. No entanto, ele introduz algumas melhorias drásticas.

HTTP ou HTTP / 2 definem:

  • Quais ações os navegadores da web e servidores precisam realizar em resposta a diferentes comandos.
  • Como cada bit de informação é transferido de um computador para outro pela web.
  • Como as mensagens são criadas, formatadas e transmitidas.

Em outras palavras, HTTP e HTTP / 2 definem os padrões de como o conteúdo da web é entregue ao seu computador, com a diferença de que HTTP / 2 torna tudo mais rápido do que seu predecessor. Aqui você pode ver o que o HTTP / 2 faz em detalhes.



Streams multiplexados

As séries bidirecionais de frames de formato de texto enviadas por meio do protocolo HTTP / 2 entre um servidor e o cliente são chamadas de 'fluxos'. O HTTP é capaz de transmitir apenas um desses “fluxos” por vez. Depois que o fluxo é enviado, há um intervalo de tempo entre a próxima transmissão do fluxo.

HTTP / 2 estabelece uma nova camada de enquadramento binário que resolve diretamente o problema de transmissão de “fluxos” um por um. Ele permite que clientes e servidores desintegrem a carga útil HTTP / 2 em sequências de quadros intercalados minúsculos, independentes e fáceis de gerenciar. Todas essas informações são remontadas uma vez que são recebidas na outra extremidade. Este protocolo permite a troca de múltiplas sequências bidirecionais simultaneamente abertas e independentes sem latência entre fluxos sucessivos.

Benefícios:

  • As solicitações e respostas paralelas multiplexadas não bloqueiam umas às outras.
  • Uma única conexão TCP pode garantir a utilização eficaz dos recursos da rede, mesmo ao transmitir vários fluxos de dados.
  • Desempenho da web mais rápido, latência reduzida e melhores resultados do mecanismo de pesquisa.
  • CapEx e OpEx reduzidos na rede em execução e recursos de TI.

Envio de servidor HTTP / 2 e envio de cache

este é um recurso que permite aos servidores enviar informações adicionais armazenáveis ​​em cache para clientes . Essas informações não são solicitadas, mas são antecipadas para solicitações futuras. Se o cliente solicitar um recurso A e for sabido que outro recurso B é referenciado com o solicitado, o servidor pode enviar B junto com A em vez de esperar por outra solicitação do cliente. Em seguida, o cliente salva o recurso enviado B no cache para uso futuro. Esse recurso salva todo um processo de ida e volta de solicitação-resposta e reduz a latência da rede. O Google introduziu originalmente o Server Push no protocolo SPDY.

Outra melhoria no HTTP / 2 é Cache Push. Isso atualiza ou invalida proativamente o cache do cliente. Isso dá aos servidores a capacidade de identificar possíveis recursos com capacidade de envio que os clientes realmente não desejam.

Benefícios:

  • Os clientes podem recusar os recursos enviados para manter um repositório eficiente de recursos em cache (ou até mesmo desativar totalmente o envio de servidor).
  • Os clientes podem limitar o número de streams enviados multiplexados simultaneamente.
  • Os servidores podem priorizar os recursos enviados. Esta é uma chave na diferença de desempenho entre HTTP / 2 e HTTP.
  • Os servidores podem multiplexar os recursos enviados junto com as informações solicitadas pelo cliente na mesma conexão TCP.
  • Os clientes podem usar os recursos armazenados em cache em diferentes páginas.
  • Os clientes salvam recursos enviados na memória cache.

Protocolos Binários

O HTTP / 2 melhorou significativamente os recursos ao transformar o protocolo de texto em um protocolo binário . Enquanto o HTTP costumava processar comandos de texto para executar ciclos de solicitação-resposta, o HTTP / 2 depende de comandos binários. Isso reduz o tempo (para 1s e 0s) para executar as mesmas tarefas.

Os navegadores com suporte a HTTP / 2 converterão os comandos de texto em código binário antes de transmiti-los pela rede. No entanto, a camada de enquadramento binário não é compatível com os servidores e clientes HTTP.

Benefícios:

  • Prevenir preocupações de segurança associadas à natureza textual do HTTP (por exemplo, ataques de divisão de resposta).
  • Habilita recursos HTTP / 2 como compactação, priorização, multiplexação, manuseio eficaz de TLS e controle de fluxo.
  • Representação compacta de comandos permitindo implementação e processamento mais fáceis.
  • Processamento de dados robusto e eficaz entre clientes e servidores.
  • Taxa de transferência aprimorada e latência de rede reduzida.
  • Menos chances de erros em comparação com HTTP.
  • Utilização de recursos de rede altamente eficiente.
  • Baixa sobrecarga na análise de dados.
  • Pegada de rede mais leve.

Priorização de fluxo

O HTTP / 2 permite que os clientes forneçam preferências para fluxos de dados específicos. Os servidores não são obrigados a seguir as instruções desses clientes, mas este mecanismo permite que os servidores otimizem a alocação de recursos de rede com base nos requisitos do usuário .

A priorização de fluxo funciona com peso e dependências atribuídos a cada fluxo. Apesar do fato de que todos os fluxos são inerentemente dependentes uns dos outros, exceto, eles têm um peso atribuído entre 1 e 256. Os mecanismos de priorização de fluxos ainda são um tópico de debate. No entanto, quando a Priorização de Fluxo é combinada com a capacidade HTTP / 2 de processar vários fluxos de dados em uma única conexão TCP, pode levar a uma chegada simultânea de solicitações de servidor de prioridade diferente.

Benefícios:

  • Efeitos negativos reduzidos de preocupações com latência de rede.
  • Experiência do usuário e velocidade de carregamento de página aprimoradas.
  • Otimização na comunicação de dados entre servidores e clientes.
  • Utilização de recursos de rede altamente eficaz.
  • Tempo de entrega reduzido para solicitações de conteúdo primário.

Compressão de cabeçalho com estado

Quando os usuários navegam em sites de conteúdo rico em mídia, usando HTTP, os clientes enviam vários quadros de cabeçalho quase idênticos. Isso ocorre porque cada solicitação do cliente deve incluir tantas informações quanto o servidor requer para realizar a operação solicitada. Esse processo leva à latência e ao consumo desnecessário de recursos.

HTTP / 2 inclui a capacidade de compactar um grande número de quadros de cabeçalho redundantes. Ele se baseia na especificação HPACK como uma abordagem segura e simples para compactação de cabeçalho . Os clientes e servidores mantêm uma lista de cabeçalhos usados ​​em solicitações cliente-servidor anteriores. Isso aborda diretamente as preocupações com os quadros de cabeçalho redundantes.

Benefícios:

  • Codifica cabeçalhos comumente usados ​​e cabeçalhos grandes. Isso elimina a necessidade de enviar quadros de cabeçalho inteiros. O tamanho individual de cada fluxo diminui significativamente.
  • Prevenir ataques de segurança, como CRIME, explorando fluxos de dados com cabeçalhos compactados.
  • Utilização eficiente de mecanismos de multiplexação.
  • Priorização de fluxo eficiente.
  • Sobrecarga de recursos reduzida.

Benefícios do mundo real de HTTP / 2

HTTP / 2 está focado em maximizar o potencial da tecnologia , para atender às necessidades e expectativas futuras. Aqui estão os benefícios reais de usar HTTP / 2.

Web Performace e Mobile Web Performance - HTTP / 2 tem a capacidade de enviar e receber mais dados em um ciclo de comunicação cliente-servidor. Ele funciona bem para reduzir a latência no acesso a serviços de Internet em redes de dados móveis e redes com largura de banda limitada por usuário.

Internet de alta velocidade mais barata - HTTP / 2 aumenta a eficácia da comunicação de dados. Isso permite que os provedores de Internet reduzam as despesas gerais, mantendo os padrões da Internet de alta velocidade.

Segurança - HTTP / 2 não é vulnerável às ameaças que visam protocolos de camada de aplicativo baseados em texto. Além disso, ele usa a abordagem “Segurança por obscuridade” para proteger a transmissão de dados confidenciais entre clientes e servidores.

Alcance Expansivo - As vantagens do HTTP / 2 reduzem os resultados da Internet para os provedores. Isso levará a uma cobertura mais ampla da Internet em nível mundial.

Experiência de mídia rica na web - Os recursos e vantagens da tecnologia que o HTTP / 2 traz para a World Wide Web fornecem uma infraestrutura capaz de entregar conteúdo rico em mídia em velocidades de carregamento de página mais rápidas.

Embrulhar

HTTP / 2 é um protocolo relativamente novo, mas o suporte para ele cresce continuamente. Hoje em dia, a maioria dos navegadores de internet suporta HTTP / 2 (Microsoft Edge, Google Chrome, Safari, Firefox, Chrome para Android). Muitos servidores da web incluem suporte nativo HTTP / 2 (Apache HTTP Server, Tomcat, NGINX). Sem dúvida, HTTP / 2 é o protocolo WWW do futuro.

5 minutos lidos