O que é HTTP/3 e QUIC?

Você abre seu navegador preferido e digita na barra de endereços www.algumacoisa.com.br e as vezes nem isso, porque se costuma visitar sempre um site correspondente ao endereço, conforme as primeiras letras são fornecidas, ele vai autopreencher o restante do endereço web.

Ou menos ainda, se tudo o que você precisou fazer, foi clicar no endereço de uma página de resultados de pesquisa do Google ou do Bing.

Mas qualquer que tenha sido a situação, você usou – sem saber na grande maioria das vezes – o HTTP. 

Você não precisou digitar o http:// antes do www, mas ele está lá. O seu navegador fez o trabalho de colocá-lo como parte do endereço.

Mas as coisas estão mudando e logo o HTTP/3 e o QUIC vão fazer parte dessa rotina de bilhões de pessoas que acessam qualquer site. Aí você se pergunta: “Eu preciso saber o que é o HTTP/3 e o QUIC para continuar navegando nos meus sites favoritos?”.

Não! Mas se souber o que é, especialmente se você também tem um site hospedado em algum lugar, muito em breve vai ter que aderir. E até se você não tem e é apenas um simples internauta, é bom saber porque é melhor acessar os sites que passarão a fazer uso do HTTP/3.

O que é HTTP/3?

A resposta mais curta e direta, é: Versão 3 do HTTP...

Naturalmente para quem nem sabe o que é HTTP, essa resposta não esclarece nada!

E justamente por causa desses que precisamos voltar um pouco no tempo, mais precisamente quando os primeiros sites surgiram.

O HTTP é um dos protocolos de Internet existentes e  que foi criado para transferência de hipertexto, o qual por sua vez é o texto que além das palavras pode conter outros tipos de dados, como por exemplo, imagens, sons e vídeos.

Já um protocolo, é um conjunto de regras precisas que determinam como algo deve ocorrer.

Portanto, o HTTP (Hypertext Transfer Protocol) ou em português Protocolo de Transferência de Hipertexto, é o conjunto de regras que determinava como ocorreriam as transferências dos dados que compunham os primeiros sites e que eram constituídos essencialmente de hipertexto.

Por muitos anos a versão 1.1, ou seja, o HTTP/1.1 foi padrão usado para comunicação na World Wide Web.

Na ocasião prestava-se muito bem ao seu propósito, mas com o desenvolvimento da Internet, entre outras limitações técnicas, identificou-se questões de desempenho e assim o HTTP/2 foi criado e introduzido em 2015, resolvendo esse e outros problemas menores.

Em paralelo, outro aspecto fundamental não era contemplado pelo HTTP/1.1, que era a segurança.

Disso, nasceu o HTTPS, que nada mais é do que a versão 1 ou 2 do protocolo, porém sobre uma camada adicional que visa implementar segurança por meio de um certificado SSL/TLS.

Desde então a Web não parou. Novas tecnologias e demandas têm feito com que o volume de dados trafegados aumente sem parar, bem como a segurança seja cada vez mais importante.

Disso, nasceu o HTTP/3, que visa sanar aspectos fundamentais de segurança e desempenho.

Como funciona o HTTP/3?

Há muitos detalhes técnicos na forma como funciona o novo protocolo para transferência de hipertexto. Não é nossa proposta ir a fundo nisso, mas apenas esclarecer os pontos que fazem do novo protocolo uma melhor opção em relação ao anterior.

O primeiro e talvez principal fator que diferencia um do outro, é que tanto o HTTP/1.1, quanto o HTTP/2, fazem uso do TCP e o HTTP/3, baseia-se no QUIC, que por sua vez faz uso do UDP.

QUIC foi inicialmente estabelecido como acrônimo de "Quick UDP Internet Connections" ou “Conexões Rápidas UDP de Internet”. Atualmente a tendência é defini-lo apenas como nome do conjunto de tecnologias que ele representa e não mais o acrônimo.

Qual a diferença entre TCP e UDP?

O TCP (Transmission Control Protocol) é também um protocolo, destinado a troca de dados entre dois pontos de uma rede ou para se comunicarem na Internet.

O TCP fornece verificação de erros e garante a entrega de dados de um ponto a outro da rede e que os pacotes contendo tais dados, serão entregues na ordem em que foram enviados, bem como são autênticos e íntegros.

Já o UDP (User Datagram Protocol) é um protocolo sem conexão que funciona como o TCP, mas não conta com as rotinas de verificação e recuperação de erros ou de integridade dos dados trocados.

Em outras palavras, o TCP é mais robusto, mais pesado e mais lento e normalmente indicado nas situações em que é importante garantir a integridade dos dados, como por exemplo, a transmissão de um arquivo no qual cada bit é relevante para o resultado final.

Em contraposição, o UDP é mais leve e rápido, já que é admissível a perda de pacotes de dados. Por essa razão, é usado em situações em que essa perda não seja um grande problema ou não comprometa o resultado final, como streaming de vídeo e de voz.

O que muda com o QUIC?

Não é só a questão de verificação quanto ao recebimento e integridade dos dados que torna o QUIC diferente.

Em uma conexão TCP/IP (TCP sobre endereço IP) típica, tudo começa com o que se conhece por “handshake” ou aperto de mão, em que os dois computadores envolvidos para estabelecerem uma conexão válida, realizam esse “aperto de mão” em 3 etapas. Com o QUIC, há apenas um aperto de mão.

Só nesse processo inicial ele leva até um terço do tempo do TCP/IP, com TLS e que é o que se tem normalmente nas conexões usando HTTPS baseadas no HTTP/2.

Além disso, com o QUIC, estabelecer uma conexão persistente, implica em instituir um protocolo de criptografia (SSL/TLS) e iniciar o envio do primeiro pacote de dados, ocorrendo tudo ao mesmo tempo em um único ciclo de solicitação / resposta no QUIC, o que reduz drasticamente a latência da conexão.

A latência é o intervalo de tempo entre o envio da solicitação e o recebimento da resposta.

E não para por aí. Dados transferidos usando o QUIC são divididos em fluxos. Os fluxos são como subconexões independentes de curta duração dentro de uma conexão QUIC persistente.

Cada um desses fluxos lida com suas próprias verificações de correção de eventuais erros, mas sob o protocolo de compressão e criptografia globais da conexão, de forma que é possível ter vários fluxos independentes entre si, de modo que se ocorrer a perda de um pacote, não há prejuízo ou impacto na transferência de dados para outros fluxos / solicitações, como ocorre no TCP/IP.

Em termos práticos, hoje um erro pode atrasar todo o carregamento de uma página, o que com o QUIC não ocorrerá, sendo possível que outros dados continuem sendo transmitidos pelos respectivos fluxos estabelecidos.

Em uma possível analogia, é como uma rua de uma única faixa ou uma avenida com quatro faixas, em que um veículo parado paralisa todo o tráfego no primeiro caso, mas não no segundo.

Resumindo, com o QUIC, objetiva-se aumentar velocidade, sem abrir mão da segurança.

Quais as vantagens do HTTP/3?

A principal e mais óbvia vantagem pelo que se viu até aqui, que a tecnologia oferecerá tempo de carregamento de sites menores ou melhor desempenho de um site.

O próprio Google já vem usando o novo protocolo no YouTube e nas SERPs (Search Engine Results Page).

Segundo a empresa, é possível ter até 30% de melhoria nos tempos de carregamento, especialmente em sites que ainda usam o HTTP/1.1 e que não são tão poucos.

Nos casos das SERPs, o ganho foi de apenas 3% e no YouTube, cerca de 15%.

Os 3% na melhoria da busca, que parece bem pouco para justificar a adoção, vem do fato de que a página de pesquisa do Google já é otimizada ao máximo objetivando desempenho na entrega dos resultados.

Por meio da criptografia TLS 1.3, que é nativa e integrada ao protocolo, o HTTP/3 não requer um “handshake” adicional para a criptografia quando da instalação de certificações de segurança para sites sobre o HTTP/1.1 ou HTTP/2 e, portanto, evita consultas de segurança adicionais desnecessárias.

Ou seja, além do ganho de velocidade, para um administrador de site é mais simples não ter que instalar um certificado SSL para aumentar a segurança do protocolo.

Quando o HTTP/3 estará disponível?

Essa é uma pergunta que todos que enxergam os benefícios do novo protocolo, fazem.

Desde dezembro de 2019, janeiro de 2020 e maio de 2020, os navegadores Chrome, Firefox e Safari respectivamente, estão aptos a exibirem sites que façam uso do HTTP/3.

No caso do Safari, até o momento (novembro/2020), é experimental o suporte ao novo protocolo e deve ser habilitado manualmente.

Já o Microsoft Edge, que é baseado no Chromium, só oferece aos usuários participantes no Microsoft Edge Insider, para os canais Dev e Canary e que são os usuários que aceitam usar softwares que estão em fase de testes, com atualizações semanais (Dev) e diárias (Canary).

Em termos de sites, é necessário que a empresa de hospedagem em que cada site existente ofereça essa tecnologia em seus servidores Web para que possa ser implementada. Há ainda hostings que têm sites hospedados e que ainda fazem uso do HTTP/1.1.

Mas não são apenas os dois extremos, ou seja, usuário e site que precisam estar habilitados a usar o HTTP/3. No meio do caminho, existem redes que podem constituir um gargalo ao uso pleno da tecnologia, por serem resistentes a tráfegos de dados baseados em UDP e que pode ser até mesmo uma rede corporativa.

Outros fatores limitantes ao uso da tecnologia, relacionam-se com a novidade. Hardware de rede mais antigo, pode simplesmente não permitir que os benefícios sejam sentidos, por simplesmente “enxergar” como um fluxo de pacotes UDP independentes. Ou seja, ainda não há um nível de utilização em diferentes situações que permita saber a eficácia da tecnologia nos mais diversos cenários.

E por fim, mas não menos importante, o IETF (Internet Engineering Task Force) e que é responsável pelo estabelecimento de padrões para Internet, ainda não está convencida da sua adoção no curto espaço de tempo nos mesmos moldes e níveis de adesão dos protocolos anteriores.

Conclusão

O HTTP/3 pode-se dizer que é a terceira versão do já conhecido HTTP e que é o protocolo que permite que um site possa ser acessado. A partir dessa versão, pretende-se melhorar o desempenho no acesso aos sites, sem prejuízo aos aspectos de segurança.

Comentários ({{totalComentarios}})