HTTP/3
la tercera versión del protocolo HTTP
From Wikipedia, the free encyclopedia
HTTP/3 es la tercera versión principal del Protocolo de Transferencia de Hipertexto utilizado para intercambiar información en la World Wide Web, que complementa a los ampliamente adoptados HTTP/1.1 y HTTP/2.[1] HTTP/3 nació a partir de un borrador llamado "Protocolo de Transferencia de Hipertexto (HTTP) sobre QUIC".[2] QUIC es un protocolo de red perteneciente a la capa de transporte desarrollado inicialmente por Google en el que se utiliza el control de congestión del espacio de usuario está utilizado sobre el Protocolo de Datagrama del Usuario (UDP).
| Protocolo de Transferencia de Hipertexto 3.0 (HTTP) | ||||||||
|---|---|---|---|---|---|---|---|---|
| Familia | Familia de protocolos de Internet | |||||||
| Función | Transferencia de hipertexto | |||||||
| Última versión | 3.0 | |||||||
| Ubicación en la pila de protocolos | ||||||||
| ||||||||
| Estándares | ||||||||
|
Hypertext Transfer Protocol Version 3 (HTTP/3) julio 2021 (Borrador de Internet) | ||||||||
El 28 de octubre de 2018 en un debate de la lista de correo, Mark Nottingham, Presidente del IETF HTTP y QUIC Working Groups, hizo la petición oficial para cambiar el nombre de HTTP-over-QUIC a HTTP/3, para "identificarlo claramente como otra unión de la semántica de HTTP al protocolo de cable... para que la gente entienda su separación de QUIC" y para pasar su desarrollo del QUIC Working Group al HTTP Working Group después de finalizar y publicar el borrador.[3] La propuesta de Nottingham fue aceptada por otros miembros del IETF unos días después, en noviembre de 2018.[2]
El soporte para HTTP/3 fue agregado a Chrome (Canary build) en septiembre de 2019, y mientras HTTP/3 no está aún activado por defecto en ningún navegador, para 2020 HTTP/3 tiene soporte no por defecto en las versiones estables de Chrome y Firefox y puede ser activado.[4][5][6] El soporte experimental para HTTP/3 fue agregado a Safari Technology Preview el 8 de abril de 2020.[7]

Implementaciones
Navegador
Bibliotecas
Hay disponibles bibliotecas de código abierto que implementan la lógica del cliente o del servidor para QUIC y HTTP/3.[9]
| Nombre | Lenguaje de programación | Compañía | Repositorio |
|---|---|---|---|
| quiche | Rust | Cloudflare | https://github.com/cloudflare/quiche |
| neqo | Rust | Mozilla | https://github.com/mozilla/neqo |
| proxygen | C++ | https://github.com/facebook/proxygen#quic-Y-http3 | |
| Cronet | C++ | https://github.com/chromium/chromium/tree/master/net/quic | |
| lsquic | C | LiteSpeed | https://github.com/litespeedtech/lsquic |
| nghttp3 | C | https://github.com/ngtcp2/nghttp3 | |
| h2o | C | https://github.com/h2o/h2o | |
| libcurl[10][11] | C | https://github.com/curl/curl | |
| MsQuic[12] | C | Microsoft | https://github.com/microsoft/msquic |
| Flupke | Java | https://bitbucket.org/pjtr/flupke | |
| aioquic | Python | https://github.com/aiortc/aioquic | |
| quic-go | Go | https://github.com/lucas-clemente/quic-go | |
| quic | Haskell | https://github.com/kazu-yamamoto/quic |
La biblioteca de quichés de Cloudflare puede ser usada como un parche para nginx.[13] El soporte para HTTP/3 está programado para la versión 1.17 de nginx.[14]
Hay varias bibliotecas que implementan un borrador más antiguo del protocolo o de las versiones de Google QUIC (p. ej. Q046 utilizado en Chrome 76), como nghttp3.