DEV Community

Cover image for HTTP/3: A próxima evolução.
Jhonatan Morais
Jhonatan Morais

Posted on

HTTP/3: A próxima evolução.

Tópicos

Fonte

Este é um resumo geral da apresentação de Daniel Stenberg, criador do Curl, sobre a próxima versão do protocolo HTTP apresentado na conferência GOTO em 17 de abril de 2020.

O que mudou

Para enteder o que mudou é importante conhecer como era antes. No início com o Http/1 já tinhamos a tão conhecida comunicação entre cliente e servidor. Entretanto tudo ocorria de maneira mais simples, onde vários pacotes eram perdidos pelo caminho e tudo era lento, algo bem precário. Todas as transmissões ocorriam via um único canal e com o crescrimento das requisições e quantidade de conteúdo transmitido ficou inviável garantir o controle e qualidade.

Com o Http/2 chegou a ideia de transmissão em streams, que são canais independentes e paralelos para transmissão de dados. Agora com múltiplas vias de comunicação um website poderia carregar de maneira paralela vários conteúdos diferentes e ao mesmo tempo, textos, imagens e outros assets. Antigamente na versão 1 tudo era carregado junto e de uma só vez e ficavamos segundos eternos olhando para uma tela branco ou com conteúdo pela metade. É claro que entre a versão 1 e 2 existiram outros pontos de melhoria, este foi o que escolhi destacar.

Na segunda versão também teve início o uso da camada TCP para garantir qualidade e a TLS para a transmissão segura do conteúdo. Mas ainda é "opcional" a utilização ou não da transmissão segura de informações, o que será bem diferente na versão seguinte.

Com a chegada do Http/3 toda a comunicação será segura, sem excessões. Assim como na versão anterior a comunicação também será via streams, mas desta vez com garantia de maior organização e melhor entrega dos pacotes.

Na nova versão o TCP será subistituido pelo QUIC/TLS3. Verdade! Quer ver melhorar? A transmissão dos streams será via UDP, mas claro com proteções para impedir falhas como ataque DDOS e outros mais. Por último promete-se uma maior velicidade nas comunicações e agilidades na troca iniciais de handshakes.

Desafios da nova versão

Como em qualquer evolução, o produto (Http/3) não esta totalmente pronto e tão poucos nós estamos prontos para recebê lo. Seguem os pontos destacados por Daniel para a serem vencidos antes do lançamento e uso oficial:

  1. Liberação do UDP: Das transmissões sob a nova versão ainda há uma falha de 3-7%. Fora que a maioria das empresas bloqueiam a transmissão via UDP para evitar ataques de negação de serviço.

  2. Evolução de Clientes e Servidores: Nossos clientes e servidores web deverão evoluir para o uso das novas nuances da nova versão. E durante a transmição ainda será necessário a aptidão para suportar a comunicação por ambos os protocolos.

  3. Sobrecarga de processamento: Com o novo gerenciamento de streams, maior velocidade de transmissão e novos algoritmos pode-se esperar uma maior demanda de processamento. Mais velocidade, potência, segurança, conforto? Maior consumo/custo.

  4. Melhor gerenciamento das stacks de UDP: A ideia de usar stacks/streams não é 100% nova. Mas gerir tudo isso com UDP ainda é, por isso muitas melhorias ainda estão por vir.

  5. A nova TLS/3: Na nova versão O TLS também vai evoluir. O grande ponto levantado por Daniel e que todo o TLS foi construído para uso via TCP e a versão 3 ainda seria apenas uma adaptação para o novo modelo.

  6. Padrões e API's ainda não estão 100% prontas: A nova versão ainda não esta completa, então muitos ainda pode personalizar algumas coisas de seus pontos, mesmo que ocorra uma pequena bagunça no futuro.

Quando será lançado

Segundo o roadmap o lançamento seria agora para o segundo semestre de 2020, mas parece que ainda há um longo caminho. Caso queira testar o Curl ja pode ser utilizado para acessar alguns dos serviços mais conhecidos e estudar as respostas, segue um comando básico para testes:

Curl --http3 --head <https://SITE-DESEJADO>

Obrigado por ler até aqui, espero que tenha gostado e lembre-se de acessar conteúdo na integra para mais informações.

Comente, compartilhe e me siga para mais conteúdos de qualidade.
Até a próxima.

Discussion (0)