HTTP / 3 - HTTP/3
Padrão internacional | Protocolo de transferência de hipertexto versão 3 (HTTP / 3) (rascunho) |
---|---|
Desenvolvido por | IETF |
Introduzido | Rascunho da Internet em julho de 2021 |
Local na rede Internet | https://quicwg.org/base-drafts/draft-ietf-quic-http.html |
HTTP / 3 é a terceira e próxima versão principal do Hypertext Transfer Protocol usado para trocar informações na World Wide Web , junto com HTTP / 1.1 e HTTP / 2 .
A semântica HTTP é consistente em todas as versões: os mesmos métodos de solicitação , códigos de status e campos de mensagem são normalmente aplicáveis a todas as versões. As diferenças estão no mapeamento dessas semânticas para transportes subjacentes. Ambos HTTP / 1.1 e HTTP / 2 uso TCP como o seu transporte. O HTTP / 3 usa o QUIC , um protocolo de rede da camada de transporte que usa o controle de congestionamento do espaço do usuário sobre o User Datagram Protocol (UDP). A mudança para o QUIC visa corrigir um grande problema do HTTP / 2 chamado " bloqueio frontal ": como a natureza paralela da multiplexação do HTTP / 2 não é visível aos mecanismos de recuperação de perda do TCP , um pacote perdido ou reordenado torna todos ativos transações para experimentar uma paralisação, independentemente de a transação ter sido impactada pelo pacote perdido. Como o QUIC fornece multiplexação nativa, os pacotes perdidos afetam apenas os fluxos onde os dados foram perdidos.
Em outubro de 2021, o protocolo HTTP / 3 ainda é oficialmente um Internet Draft , mas já é suportado por 73% dos navegadores em execução e, de acordo com a W3Techs, por 22% dos 10 milhões de sites principais. Ele tem suporte do Google Chrome (incluindo Chrome para Android e Microsoft Edge , que é baseado nele) desde abril de 2020 e pelo Mozilla Firefox desde maio de 2021. Safari 14 (no macOS Big Sur e iOS 14 ) também implementou o protocolo mas o suporte está escondido atrás de um sinalizador de recurso .
História
HTTP / 3 é um rascunho da Internet adotado pelo grupo de trabalho QUIC. A proposta original foi denominada "Semântica HTTP / 2 usando o protocolo de transporte QUIC" e, posteriormente, "Protocolo de transferência de hipertexto (HTTP) sobre QUIC".
Em 28 de outubro de 2018, em uma discussão de lista de e-mails, Mark Nottingham, presidente dos grupos de trabalho IETF HTTP e QUIC, propôs renomear HTTP-over-QUIC para HTTP / 3, para "identificá-lo claramente como outra ligação da semântica HTTP ao protocolo de conexão ... para que as pessoas entendam sua separação do QUIC ". A proposta de Nottingham foi aceita por outros membros da IETF alguns dias depois. O grupo de trabalho HTTP é autorizado a auxiliar o grupo de trabalho QUIC durante o design do HTTP / 3 e, em seguida, assume a responsabilidade pela manutenção após a publicação.
O suporte para HTTP / 3 foi adicionado ao Chrome (compilação Canary) em setembro de 2019 e finalmente atingiu compilações estáveis, mas foi desativado por um sinalizador de recurso. Ele foi habilitado por padrão em abril de 2020. O Firefox adicionou suporte para HTTP / 3 em novembro de 2019 por meio de um sinalizador de recurso e começou a habilitá-lo por padrão em abril de 2021 no Firefox 88. Suporte experimental para HTTP / 3 foi adicionado ao Safari Technology Preview em abril 8, 2020 e foi incluído no Safari 14 que vem com iOS 14 e macOS 11 , mas ainda está desabilitado por padrão.
Implementações
Cliente
Navegador
Navegador | Versão implementada (desativada por padrão) | Versão enviada (habilitado por padrão) | ||
---|---|---|---|---|
cromada | Construção estável (79) | Dezembro de 2019 | 87 | Abril de 2020 |
Raposa de fogo | Construção estável (72.0.1) | Janeiro de 2020 | 88 | Abril de 2021 |
Safári | Safari Technology Preview 104 | Abril de 2020 | ||
Borda | 87 | Abril de 2020 |
Bibliotecas
Bibliotecas de código aberto que implementam lógica de cliente ou servidor para QUIC e HTTP / 3 incluem
Servidor
- LiteSpeed Web Server (e OpenLiteSpeed) suporta HTTP / 3 draft 32.
- O servidor web Caddy tem suporte experimental para HTTP / 3 a partir de 2.0 beta 17.
- O suporte Nginx para HTTP / 3 está sendo trabalhado. Uma prévia da tecnologia do nginx com suporte a HTTP / 3 foi lançada em junho de 2020.
- Cloudflare distribui um patch para nginx que integra a biblioteca quiche HTTP / 3 nele.
Existem várias bibliotecas que implementam um rascunho mais antigo do protocolo ou versões do QUIC do Google (por exemplo, Q046 usado no Chrome 76).