È disponibile la prima versione stabile del progetto nghttp3, che sviluppa una libreria in C con implementazione del protocollo HTTP/3. La variante della libreria per il protocollo HTTP/2, sviluppata dallo stesso progetto, è utilizzata come base per il modulo mod_http2, incluso nel server http Apache. I risultati del progetto sono anche utilizzati nell'utilità Curl. Il codice della libreria è distribuito con licenza MIT.
Lo standard HTTP/3 definisce l'uso del protocollo QUIC (Quick UDP Internet Connections) come trasporto per HTTP/2. QUIC è un'estensione del protocollo UDP che supporta il multiplexing di più connessioni e offre metodi di crittografia equivalenti a TLS/SSL. Il protocollo è stato creato nel 2013 da Google come alternativa alla combinazione TCP+TLS per il Web, risolvendo i problemi di tempi elevati di stabilimento e negoziazione delle connessioni in TCP e eliminando i ritardi dovuti alla perdita di pacchetti durante la trasmissione dei dati.
In nghttp3 è fornita un'implementazione indipendente delle specifiche RFC 9114 (HTTP/3 sopra il protocollo QUIC), RFC 920 (tecnologia di compressione degli header QPACK), RFC 9220 (trasmissione di WebSocket sopra HTTP/3) e RFC 9218 (schema estensibile per la gestione delle priorità nella risposta alle richieste del cliente). La libreria è indipendente da specifici stack QUIC e supporta l'operatività sopra diverse implementazioni del protocollo di trasporto QUIC. Contemporaneamente, il progetto sviluppa anche la propria implementazione del protocollo QUIC — ngtcp2, utilizzata per impostazione predefinita. Per i backend della crittografia dei dati in ngtcp2, sono supportati quictls, GnuTLS, BoringSSL, Picotls e wolfSSL. Insieme a nghttp3 1.0 è stato pubblicato anche il primo rilascio stabile di ngtcp2 1.0.
Fonte: opennet.ru
