HTTP/3: Veja como este protocolo beneficia suas aplicações no Edge

Performance e segurança são os principais benefícios do HTTP/3, a nova versão de uma das tecnologias fundamentais da web.

Rafael Rigues - Technical Researcher
HTTP/3: Veja como este protocolo beneficia suas aplicações no Edge

Uma mudança importante está acontecendo na infraestrutura da web: uma nova versão do protocolo HTTP (Hypertext Transfer Protocol) está sendo gradualmente implementada. Definido no documento RFC 91141 pela Internet Engineering Task Force (IETF), organização responsável pela criação e manutenção dos padrões nos quais a internet moderna é baseada, o HTTP/3 traz ganhos significativos de performance em comparação a seus antecessores, além de melhor segurança. 

Neste artigo, discutiremos algumas das mudanças no HTTP/3 e como as complexas aplicações modernas que fazem uso intenso de dados, como as executadas em plataformas de Edge Computing, podem se beneficiar delas. 

Uma visão geral do QUIC

HTTP/3 é baseado em um novo protocolo de camada de transporte chamado QUIC, originalmente desenvolvido pelo Google. De fato, o protocolo era originalmente conhecido como “Semântica HTTP/2 usando o protocolo de transporte QUIC”.

O uso do QUIC em vez do TCP (Transmission Control Protocol), protocolo de rede usado em versões anteriores, é a maior mudança no HTTP/3 e o principal responsável pelos ganhos em velocidade e performance de que falaremos a seguir.

O QUIC foi projetado especificamente para resolver ineficiências do TCP, e usa o UDP (User Datagram Protocol), um protocolo “sem conexão”, o que significa que ele não tem a sobrecarga associada ao estabelecimento e manutenção de conexões, como ocorre no TCP.

Recursos adicionais como a compressão de cabeçalhos e o controle independente de fluxo o tornam mais eficiente, e criptografia (com TLS 1.3) e controle de congestionamento integrados reduzem a necessidade de protocolos adicionais para garantir a segurança e a performance.

Outro recurso importante do QUIC, que o prepara para o futuro, é que ele foi projetado para impedir a “ossificação”, que impede a evolução de protocolos de rede. Este fenômeno impediu tentativas anteriores de aprimorar o TCP, o que levou à decisão de substituí-lo completamente e, como consequência, ao QUIC.

O que o HTTP/3 traz para suas aplicações e serviços?

HTTP/3 tem melhor performance

O uso de um protocolo mais eficiente como o QUIC reduz a quantidade de tráfego extra necessário para estabelecer e manter conexões, o que significa menor uso de banda e poder de processamento. Isto pode melhorar significativamente a performance, especialmente para aplicações que fazem muitas requisições HTTP pequenas, reduzir o custo na execução de aplicações web e melhorar a experiência do usuário.

HTTP/3 também elimina um problema conhecido como head-of-line blocking (algo como “bloqueio na ponta da fila”), quando uma requisição que demora para ser respondida bloqueia o processamento de outras atrás dela. Isso é feito com o melhor uso de uma técnica chamada multiplexação de streams, que permite que múltiplas requisições HTTP sejam processadas em paralelo, mesmo que algumas delas sejam mais lentas do que outras. A multiplexação já estava disponível no HTTP/2, mas limitações do protocolo TCP, que foram resolvidas no QUIC, impediam que todo seu potencial fosse aproveitado.

É difícil apontar ganhos específicos de performance no HTTP/3, já que eles variam de acordo com fatores como a arquitetura de seu website ou aplicação, onde o conteúdo é armazenado, as conexões de rede utilizadas para carregá-lo, e até mesmo a distância geográfica até a origem. Alguns benchmarks, entretanto, apontam para um ganho de performance de até 3 vezes2 no carregamento de  conteúdo.

HTTP/3 é mais seguro

HTTP/3 adota a versão 1.3 do Transport Layer Security Protocol (TLS 1.3). Ela usa algoritmos criptográficos mais seguros, incluindo a versão mais recente da cifra AES, o que significa que é mais resistente a ataques do que algoritmos utilizados em versões anteriores do TLS.

Ele também elimina alguns recursos que se mostraram inseguros, como as extensões de renegociação e compressão. Os metadados de conexão são criptografados, o que reduz a chance de ataques “Man in the Middle” (MiTM), quando os criminosos podem interceptar e possivelmente modificar a comunicação entre dois participantes.

O TLS 1.3 também introduz um recurso que auxilia na performance, chamado 0-RTT (Zero Round-Trip Time), que permite que um cliente e servidor estabeleçam uma conexão de forma mais rápida. Isso é possível porque o cliente e servidor trocam uma chave pré-compartilhada, o que permite o estabelecimento de uma conexão segura sem a necessidade de executar previamente um “aperto de mão” (handshake) completo.

HTTP/3 tem melhor suporte a conexões móveis

Ao usar UDP e QUIC, o HTTP/3 é projetado para funcionar bem sem impacto na performance, mesmo em ambientes com alta perda de pacotes e baixa largura de banda como conexões móveis, quando as conexões TCP podem ter performance insatisfatória.

HTTP/3 também utiliza identificadores de conexão (Connection IDs) para garantir que os pacotes sempre sejam entregues para os endpoints corretos, mesmo quando mudanças ocorrem nas camadas de protocolo inferiores da conexão (como quando o endereço IP de um cliente móvel muda). Isso permite que a conexão migre de forma transparente através de endereços IP e interfaces.

Assim, um download em progresso pode ser facilmente transferido de uma conexão através da rede móvel para uma conexão Wi-Fi quando esta se torna disponível, sem que o cliente e o servidor precisem renegociar a conexão quando a mudança de rede acontece. Isso resulta em menos sobrecarga e mais eficiência.

E quanto à adoção do HTTP/3?

É importante notar que a chegada de uma nova versão do protocolo HTTP não significa que o uso de versões anteriores será encerrado imediatamente, já que o “upgrade” não é de forma alguma obrigatório. HTTP/3 provavelmente coexistirá com versões anteriores por um longo tempo, mas a adoção está crescendo rapidamente3: dados do W3Techs apontam que 26,6% dos 100 milhões de principais websites do mundo já suportam o novo protocolo.

Entre outros fatores, isso se dá pelo fato de que todos os principais navegadores, tanto para desktop quanto mobile, já suportam o HTTP/3. O Google Chrome e o Microsoft Edge tiveram suporte habilitado por padrão em abril de 2020, e o Mozilla Firefox se juntou a eles um ano mais tarde, em abril de 2021. O Safari, da Apple, foi o último da turma: o suporte foi implementado em setembro de 2020, mas só foi habilitado por padrão em março de 2023.

Mas isso não é motivo para alarme: se um cliente sem suporte a HTTP/3 tenta se conectar a um servidor que adota o protocolo, a conexão é automaticamente estabelecida usando HTTP/2. Portanto, não há um ponto negativo em habilitar o suporte a HTTP/3 em seu servidor ou aplicação.

Conclusão

HTTP/3 é uma atualização fundamental de uma das tecnologias que formam a base da web moderna, que resolve problemas que há muito tempo assolavam as versões anteriores.

A plataforma moderna de computação no edge da Azion tem suporte a HTTP/3, combinando os benefícios do novo protocolo com menor latência e alta disponibilidade, abrindo as portas para uma nova geração de aplicações web mais rápidas e seguras. Fale com nossos experts para saber mais.

Referências

1 RFC 9114 - HTTP/3
2 HTTP/3 is Fast | Request Metrics
3 Usage Statistics of HTTP/3 for Websites, October 2023

Inscreva-se na nossa Newsletter