De eerste stabiele release van het nghttp3-project is beschikbaar, dat een bibliotheek in de programmeertaal C ontwikkelt met een implementatie van het HTTP/3-protocol. De door hetzelfde project ontwikkelde versie van de bibliotheek voor het HTTP/2-protocol wordt gebruikt als basis voor de mod_http2-module die deel uitmaakt van de http-server van Apache. De ontwikkelingen van het project zijn ook gebruikt in de Curl-tool. De code van de bibliotheek wordt verspreid onder de MIT-licentie.
De HTTP/3-standaard definieert het gebruik van het QUIC-protocol (Quick UDP Internet Connections) als transport voor HTTP/2. QUIC is een bovenlaag op het UDP-protocol, dat multiplexing van meerdere verbindingen ondersteunt en versleutelingsmethoden biedt die gelijkwaardig zijn aan TLS/SSL. Het protocol werd in 2013 door Google ontwikkeld als een alternatief voor de combinatie van TCP+TLS voor het web, waarmee problemen met lange opzet- en onderhandelingsperiodes in TCP worden opgelost en de vertragingen bij pakketverlies tijdens gegevensoverdracht worden geƫlimineerd.
In nghttp3 wordt een onafhankelijke implementatie van de specificaties RFC 9114 (HTTP/3 boven het QUIC-protocol), RFC 920 (QPACK-kopcompressietechnologie), RFC 9220 (WebSocket-verkeer boven HTTP/3) en RFC 9218 (uitbreidbare schema voor het beheer van prioriteiten bij het verzenden van antwoorden op klantverzoeken) aangeboden. De bibliotheek is niet afhankelijk van specifieke QUIC-stacks en ondersteunt het werken op verschillende implementaties van het QUIC-transportprotocol. Tegelijkertijd ontwikkelt het project ook een eigen implementatie van het QUIC-protocol ā ngtcp2, dat standaard wordt toegepast. Als backends voor gegevensversleuteling in ngtcp2 worden quictls, GnuTLS, BoringSSL, Picotls en wolfSSL ondersteund. Samen met nghttp3 1.0 is ook de eerste stabiele release van ngtcp2 1.0 gepubliceerd.
Bron: opennet.ru
