Está disponible la primera versión estable del proyecto nghttp3, que desarrolla una biblioteca en C con implementación del protocolo HTTP/3. La variante de la biblioteca para el protocolo HTTP/2, desarrollada por el mismo proyecto, se utiliza como base para el módulo mod_http2, que forma parte del servidor http Apache. Los avances del proyecto también se utilizan en la utilidad Curl. El código de la biblioteca se distribuye bajo la licencia MIT.
El estándar HTTP/3 define el uso del protocolo QUIC (Quick UDP Internet Connections) como transporte para HTTP/2. QUIC es una capa sobre el protocolo UDP que soporta la multiplexación de múltiples conexiones y proporciona métodos de cifrado equivalentes a TLS/SSL. El protocolo fue creado en 2013 por Google como una alternativa a la combinación TCP+TLS para la web, abordando problemas de tiempo de establecimiento y negociación de conexiones en TCP y eliminando retrasos por pérdida de paquetes durante la transmisión de datos.
En nghttp3 se proporciona una implementación independiente de las especificaciones RFC 9114 (HTTP/3 sobre el protocolo QUIC), RFC 920 (tecnología de compresión de encabezados QPACK), RFC 9220 (transmisión de WebSockets sobre HTTP/3) y RFC 9218 (esquema ampliable para gestionar prioridades al enviar respuestas a las solicitudes del cliente). La biblioteca no depende de pilas específicas de QUIC y soporta el funcionamiento sobre diferentes implementaciones del protocolo de transporte QUIC. Al mismo tiempo, el proyecto también desarrolla su propia implementación del protocolo QUIC — ngtcp2, que se utiliza por defecto. Como backend para el cifrado de datos en ngtcp2 se soportan quictls, GnuTLS, BoringSSL, Picotls y wolfSSL. Junto con nghttp3 1.0, se publicó la primera versión estable de ngtcp2 1.0.
Fuente: opennet.ru
