As compilações noturnas do Firefox agora suportam HTTP/3
В construções noturnas Firefox, que servirá de base para o lançamento do Firefox 72, previsto para 7 de janeiro, adicionado Suporte ao protocolo HTTP/3. Por padrão, HTTP/3 está desabilitado e requer que a opção “network.http.http3.enabled” seja ativada em about:config.
O suporte HTTP/3 no Firefox é baseado em um projeto desenvolvido pela Mozilla neqo, que fornece uma implementação de cliente e servidor para o protocolo QUIC. O código do componente para suporte HTTP/3 e QUIC é escrito em Rust.
Do software cliente, o suporte experimental para HTTP/3 também já está disponível adicionado no Chrome e curl, e para servidores está disponível no formato модуля para nginx e servidor de teste baseado em biblioteca quiche (implementação QUIC e HTTP/3 em Rust da Cloudflare). Para testar a operação de clientes HTTP/3 lançado vários sites de teste, muitos dos quais ainda não abrem corretamente no Firefox (HTTP/3 está em fase especificação preliminar e não está completamente padronizado).
Lembre-se de que HTTP/3 padroniza o uso do protocolo QUIC como transporte para HTTP/2. Protocolo QUIC (Quick UDP Internet Connections) é desenvolvido pelo Google desde 2013 como uma alternativa à combinação TCP+TLS para a Web, resolvendo problemas com longos tempos de configuração e negociação de conexões em TCP e eliminando atrasos quando pacotes são perdidos durante a transferência de dados. QUIC é uma extensão do protocolo UDP que suporta multiplexação de múltiplas conexões e fornece métodos de criptografia equivalentes a TLS/SSL.
Alta segurança, semelhante ao TLS (na verdade, o QUIC fornece a capacidade de usar TLS sobre UDP);
Controle de integridade de fluxo para evitar perda de pacotes;
A capacidade de estabelecer instantaneamente uma conexão (0-RTT, em cerca de 75% dos casos, os dados podem ser transmitidos imediatamente após o envio de um pacote de configuração de conexão) e garantir atrasos mínimos entre o envio de uma solicitação e o recebimento de uma resposta (RTT, Round Trip Time) ;
Não use o mesmo número de sequência ao retransmitir um pacote, o que permite evitar ambigüidades na determinação dos pacotes recebidos e eliminar os tempos limite;
A perda de pacotes afeta apenas a entrega do stream associado a ele e não interrompe a entrega de dados em streams transmitidos em paralelo na conexão atual;
Ferramentas de correção de erros que minimizam atrasos devido à retransmissão de pacotes perdidos. Uso de códigos especiais de correção de erros no nível do pacote para reduzir situações que requerem retransmissão de dados perdidos do pacote.
Os limites dos blocos criptográficos estão alinhados com os limites dos pacotes QUIC, o que reduz o impacto das perdas de pacotes na decodificação do conteúdo dos pacotes subsequentes;
Sem problemas com o bloqueio da fila TCP;
Suporte de ID de conexão para reduzir o tempo de reconexão para clientes móveis;
Possibilidade de conectar mecanismos avançados para controle de sobrecarga de conexão;
Utilizar técnicas de previsão de largura de banda em cada direção para garantir a intensidade ótima de envio de pacotes, evitando rolar para um estado de congestionamento, no qual há perda de pacotes;
Perceptível crescimento desempenho e taxa de transferência em comparação com o TCP. Para serviços de vídeo como o YouTube, o QUIC demonstrou reduzir as operações de rebuffering de vídeo em 30%.