Articulo de referencia

HTTP/3

HTTP/3 es la tercera versión principal del Protocolo de Transferencia de Hipertexto utilizado para intercambiar información en la World Wide Web , complementando a los ampliamen...

HTTP/3 es la tercera versión principal del Protocolo de Transferencia de Hipertexto utilizado para intercambiar información en la World Wide Web , complementando a los ampliamente implementados HTTP/1.1 y HTTP/2 . A diferencia de las versiones anteriores que se basaban en el bien establecido TCP (publicado en 1974), [ 2 ] HTTP/3 utiliza QUIC (introducido oficialmente en 2021), [ 3 ] un protocolo de transporte multiplexado construido sobre UDP . [ 4 ]

HTTP/3 utiliza una semántica similar a la de las revisiones anteriores del protocolo, incluyendo los mismos métodos de solicitud , códigos de estado y campos de mensaje , pero los codifica y mantiene el estado de la sesión de manera diferente. Sin embargo, debido en parte a la adopción de QUIC por parte del protocolo, HTTP/3 tiene menor latencia y carga más rápidamente en el uso real en comparación con versiones anteriores: en algunos casos, más de cuatro veces más rápido que con HTTP/1.1 (que, para muchos sitios web, es la única versión HTTP implementada). [ 5 ] [ 6 ]

A partir de julio de 2026, HTTP/3 es compatible con más del 95 % de los principales navegadores web en uso [ 7 ] y el 40 % de los 10 millones de sitios web más importantes. [ 8 ] Ha sido compatible con Chromium (y proyectos derivados como Google Chrome , Microsoft Edge , Samsung Internet y Opera ) [ 9 ] desde abril de 2020 y con Mozilla Firefox desde mayo de 2021. [ 7 ] [ 10 ] Safari ha implementado el estándar desde septiembre de 2024 (16+ es compatible con HTTP/3 para todos los usuarios; anteriormente estaba limitado a un subconjunto de usuarios) [ 11 ]

Historia

HTTP/1.1Transport Layer SecurityTransmission Control ProtocolHTTP/2TLS 1.2Transmission Control ProtocolHTTP/3TLS 1.3QUICUser Datagram ProtocolInternet Protocol
Pila de protocolos de HTTP/3 en comparación con HTTP/1.1 y HTTP/2.

HTTP/3 tiene su origen en un borrador de Internet adoptado por el grupo de trabajo QUIC. La propuesta original se denominó "HTTP/2 Semantics Using The QUIC Transport Protocol" [ 12 ] y posteriormente se renombró como "Hypertext Transfer Protocol (HTTP) over QUIC" [ 13 ] .

El 28 de octubre de 2018, en una discusión en una lista de correo, Mark Nottingham, presidente de los grupos de trabajo HTTP y QUIC del IETF , propuso cambiar el nombre de HTTP-over-QUIC a HTTP/3 para "identificarlo claramente como otra vinculación de la semántica HTTP con el protocolo de comunicación [...] de modo que se entienda su separación de QUIC". [ 14 ] La propuesta de Nottingham fue aceptada por otros miembros del IETF unos días después. El grupo de trabajo HTTP se encargó de asistir al grupo de trabajo QUIC durante el diseño de HTTP/3 y, posteriormente, asumir la responsabilidad del mantenimiento tras su publicación. [ 15 ]

Se agregó soporte para HTTP/3 a Chrome (compilación Canary) en septiembre de 2019 y luego llegó a las compilaciones estables, pero se deshabilitó mediante una bandera de características. Se habilitó por defecto en abril de 2020. [ 9 ] Firefox agregó soporte para HTTP/3 en noviembre de 2019 a través de una bandera de características [ 7 ] [ 16 ] [ 17 ] y comenzó a habilitarlo por defecto en abril de 2021 en Firefox 88. [ 7 ] [ 10 ] Se agregó soporte experimental para HTTP/3 a Safari Technology Preview el 8 de abril de 2020 [ 18 ] y se incluyó con Safari 14 que viene con iOS 14 y macOS 11 ,. [ 19 ] [ 20 ] A partir de septiembre de 2024, HTTP/3 es compatible con todos los usuarios en Safari 16 o posterior. [ 11 ]

El 6 de junio de 2022, la IETF publicó HTTP/3 como un estándar propuesto en la RFC 9114 [ 1 ] . 

Comparación con HTTP/1.1 y HTTP/2

La semántica HTTP es consistente entre versiones: los mismos métodos de solicitud , códigos de estado y campos de mensaje suelen ser aplicables a todas las versiones. Las diferencias radican en la asignación de esta semántica a los transportes subyacentes. Tanto HTTP/1.1 como HTTP/2 utilizan TCP como transporte. HTTP/3 utiliza QUIC , un protocolo de red de capa de transporte que emplea control de congestión en el espacio de usuario sobre el Protocolo de Datagramas de Usuario (UDP). El cambio a QUIC busca solucionar un problema importante de HTTP/2 denominado " bloqueo de cabecera de línea ": debido a que la naturaleza paralela de la multiplexación de HTTP/2 no es visible para los mecanismos de recuperación de pérdida de TCP , un paquete perdido o reordenado provoca que todas las transacciones activas se detengan, independientemente de si la transacción se vio afectada por el paquete perdido. Dado que QUIC proporciona multiplexación nativa, los paquetes perdidos solo afectan a los flujos donde se han perdido datos.

El registro de recursos DNS HTTPS, tal como se define en RFC 9460 [ 21 ], permite la conexión sin recibir primero el encabezado Alt-Svc a través de versiones HTTP anteriores, eliminando así el RTT de 1 del protocolo de enlace TCP. [ 22 ] [ 23 ] Existe soporte de cliente para registros de recursos HTTPS desde Firefox 92, iOS 14, Safari 14 informó soporte y Chromium lo admite detrás de una bandera. [ 24 ] [ 25 ] [ 26 ] 

Implementaciones

Cliente

Bibliotecas

Las bibliotecas de código abierto que implementan la lógica del cliente o del servidor para QUIC y HTTP/3 incluyen [ 30 ].

Servidor

Véase también

Referencias

  1. 1 2 M. Bishop, ed. (junio de 2022). HTTP/3 . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC9114 . ISSN 2070-1721 . RFC 9114 . Norma propuesta.
  2. V. Cerf ; Y. Dalal ; C. Sunshine (diciembre de 1974). ESPECIFICACIÓN DEL PROGRAMA DE CONTROL DE TRANSMISIÓN DE INTERNET . Grupo de Trabajo de Redes. doi : 10.17487/RFC0675 . RFC 675 .Obsoleto. Obsoleto según RFC 7805. NIC 2. INWG 72. 
  3. J. Iyengar; M. Thomson, eds. (mayo de 2021). QUIC: Un transporte seguro y multiplexado basado en UDP . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC9000 . ISSN 2070-1721 . RFC 9000 . Norma propuesta.
  4. "¿Qué es HTTP/3?" . Cloudflare . Archivado del original el 4 de julio de 2022 . Consultado el 12 de julio de 2022 .
  5. Perna, Gianluca; Trevisan, Martino; Giordano, Danilo; Drago, Idilio (1 de abril de 2022). "Una primera mirada a la adopción y el rendimiento de HTTP/3" . Computer Communications . 187 : 115–124 . doi : 10.1016/j.comcom.2022.02.005 . hdl : 11368/3025202 . ISSN 0140-3664 . S2CID 246936473 .  
  6. "HTTP/3 es rápido" . Métricas de solicitud . Consultado el 1 de julio de 2022 .
  7. 1 2 3 4 5 ""HTTP/3" | ¿Puedo usar... Tablas de soporte para HTML5, CSS3, etc." . canIuse.com . Consultado el 11 de agosto de 2024 .
  8. "Uso de HTTP/3 para sitios web" . Encuestas sobre tecnología de la World Wide Web . W3Techs . Consultado el 19 de julio de 2026 .
  9. 1 2 "Habilitación de QUIC en la punta del árbol" . groups.google.com . Consultado el 8 de abril de 2021 .
  10. 1 2 3 Damjanovic, Dragana (16 de abril de 2021). "Soporte para QUIC y HTTP/3 ahora en Firefox Nightly y Beta" . Mozilla Hacks – el blog para desarrolladores web . Recuperado el 17 de abril de 2021 .
  11. 1 2 3 Jen Simmons (30 de octubre de 2024). "Actualización del soporte de Safari para HTTP3" . GitHub . Recuperado el 20 de julio de 2025 .
  12. Shade, Robbie (8 de julio de 2016). Semántica HTTP/2 utilizando el protocolo de transporte QUIC . IETF . ID draft-shade-quic-http2-mapping.
  13. Cimpanu, Catalin (12 de noviembre de 2018). "HTTP-over-QUIC pasará a llamarse HTTP/3" . ZDNet . Consultado el 12 de noviembre de 2018 .
  14. Nottingham, Mark (28 de octubre de 2018). "Identificando nuestros entregables" . Archivo de correo de IETF .
  15. "Carta del Protocolo de Transferencia de Hipertexto" . ietf.org . Consultado el 2 de septiembre de 2020 .
  16. Daniel, Stenberg. "Daniel Stenberg anuncia compatibilidad con HTTP/3 en Firefox Nightly" . Twitter . Consultado el 5 de noviembre de 2019 .
  17. Cimpanu, Catalin (26 de septiembre de 2019). "Cloudflare, Google Chrome y Firefox añaden compatibilidad con HTTP/3" . ZDNet . Consultado el 27 de septiembre de 2019 .
  18. "Notas de la versión de Safari Technology Preview 104" . webkit.org . 8 de abril de 2020. Consultado el 7 de agosto de 2020 .
  19. "Notas de la versión de Safari 14" . developer.apple.com . Consultado el 4 de diciembre de 2020 .
  20. Ng, Gary (23 de junio de 2020). "Apple's Safari añade compatibilidad con HTTP3 en iOS 14 y macOS 11" . iphoneincanada.ca . Consultado el 25 de junio de 2021 .
  21. Benjamin M. Schwartz; Mike Bishop; Erik Nygren (noviembre de 2023). Enlace de servicio y especificación de parámetros a través del DNS (registros de recursos SVCB y HTTPS) . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC9460 . ISSN 2070-1721 . RFC 9460 . Norma propuesta.
  22. "HTTPS RR" . MDN . Mozilla . Consultado el 25 de octubre de 2022 .
  23. Schwartz, Benjamin M.; Bishop, Mike; Nygren, Erik (12 de junio de 2020). Enlace de servicio y especificación de parámetros a través del DNS . IETF . ID draft-ietf-dnsop-svcb-https.
  24. "Firefox 92 para desarrolladores" . Mozilla Corporation . 7 de septiembre de 2021. Consultado el 25 de octubre de 2022 .
  25. "Función: redirección HTTP->HTTPS para registros DNS HTTPS" . Google Inc. Consultado el 25 de octubre de 2022 .
  26. Patrick Mevzek (24 de agosto de 2021). "¿Cuál es el caso de uso de SVCB (tipo 65, enlace de servicio) RR?" . Stack Exchange Inc. Recuperado el 25 de octubre de 2022 .
  27. "Habilitación de QUIC en la punta del árbol" . groups.google.com . Consultado el 9 de abril de 2021 .
  28. "Propietarios de versiones de Firefox - MozillaWiki" . wiki.mozilla.org . Consultado el 9 de abril de 2021 .
  29. Jen Simmons (4 de abril de 2023). "Soporte HTTP/3 incluido en Safari 14.0" . GitHub . Consultado el 20 de julio de 2025 .
  30. "Implementaciones QUIC" . GitHub . Consultado el 8 de abril de 2021 .
  31. "Primer HTTP/3 con curl" . Daniel Stenberg. 5 de agosto de 2019. Consultado el 2 de octubre de 2019 .
  32. "HTTP3 (y QUIC)" . Daniel Stenberg. 23 de agosto de 2023. Consultado el 27 de agosto de 2023 .
  33. "MsQuic es de código abierto" . 28 de abril de 2020. Consultado el 28 de abril de 2020 .
  34. "Soporte HTTP/3 en .NET 6" . 17 de septiembre de 2021. Consultado el 17 de septiembre de 2021 .
  35. "Soporte HTTP/3 en .NET 6" . Blog de .NET . 17 de septiembre de 2021. Consultado el 12 de enero de 2022 .
  36. "Registro de lanzamiento del servidor web LiteSpeed ​​- LiteSpeed ​​Technologies" . www.litespeedtech.com . Consultado el 12 de febrero de 2022. Habilitar HTTP/3 v1 por defecto.
  37. "Versión 2.6.0 · caddyserver/caddy" . Github . 22 de septiembre de 2022. Consultado el 20 de septiembre de 2022 .
  38. "Presentación de una vista previa tecnológica del soporte de NGINX para QUIC y HTTP/3" . NGINX . 10 de junio de 2020. Consultado el 11 de junio de 2020 .
  39. "Paquetes binarios ya disponibles para la implementación preliminar de NGINX QUIC+HTTP/3" . NGINX . 8 de febrero de 2023. Consultado el 30 de marzo de 2023 .
  40. "Experimenta con HTTP/3 usando NGINX y quiche" . El blog de Cloudflare . 17 de octubre de 2019. Consultado el 9 de noviembre de 2019 .
  41. Tratcher. "Usar ASP.NET Core con HTTP/3 en IIS" . docs.microsoft.com . Consultado el 29 de abril de 2022 .
  42. "Anuncio de HAProxy 2.6" . Blog de HAProxy . 31 de mayo de 2022.
  43. "Implementación de QUIC en HAProxy" . Presentación en vídeo de HAProxyConf . 25 de enero de 2023.
  44. "Soporte para HTTP/3 y QUIC en Nimble Streamer" . NGINX . 14 de febrero de 2025. Consultado el 17 de febrero de 2025 .
  • Sitio web oficialEdita esto en Wikidata
  • Grupo de trabajo QUIC de la IETF en GitHub
  • Explicación de HTTP/3 ( Daniel Stenberg )
  • HTTP/3 en canIuse.com
  • Lista de implementaciones de QUIC en la wiki del Grupo de Trabajo QUIC de la IETF