ΠΠΎΡΡΡΠΏΠ΅Π½ Π΅ ΠΏΡΡΠ²ΠΈΡΡ ΡΡΠ°Π±ΠΈΠ»Π΅Π½ ΡΠ΅Π»ΠΈΠ· Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° nghttp3, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π·Π²ΠΈΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° C Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° HTTP/3. Π Π°Π·Π²ΠΈΠ²Π°Π½Π°ΡΠ° ΠΎΡ ΡΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ Π²Π΅ΡΡΠΈΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° HTTP/2 ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π° Π·Π° ΠΌΠΎΠ΄ΡΠ»Π° mod_http2, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠ°ΡΡ ΠΎΡ http ΡΡΡΠ²ΡΡΠ° Apache. ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΡΡΠΎ ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° Curl. ΠΠΎΠ΄ΡΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· MIT.
Π‘ΡΠ°Π½Π΄Π°ΡΡΡΡ HTTP/3 ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° QUIC (Quick UDP Internet Connections) ΠΊΠ°ΡΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡ Π·Π° HTTP/2. QUIC ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° Π½Π°Π΄ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° UDP, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ° ΠΌΡΠ»ΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΡΡΠ·ΠΊΠΈ ΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΡΠΈΡΡΠΎΠ²Π°Π½Π΅, Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΈ Π½Π° TLS/SSL. ΠΡΠΎΡΠΎΠΊΠΎΠ»ΡΡ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΏΡΠ΅Π· 2013 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΡ Google ΠΊΠ°ΡΠΎ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΡΠ° TCP+TLS Π·Π° ΡΠ΅Π±, ΡΠ΅ΡΠ°Π²Π°ΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ Π΄ΡΠ»Π³ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΈ ΡΡΠ³Π»Π°ΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅ Π² TCP ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°ΡΠ° Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡΡΠ° ΠΏΡΠΈ Π·Π°Π³ΡΠ±Π° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ.
nghttp3 ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ RFC 9114 (HTTP/3 Π²ΡΡΡ
Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» QUIC), RFC 920 (ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π½Π° Π·Π°Π³Π»Π°Π²ΠΈΡ QPACK), RFC 9220 (ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° WebSockets Π²ΡΡΡ
Ρ HTTP/3) ΠΈ RFC 9218 (ΡΠ°Π·ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡ
Π΅ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΈΡΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ Π·Π°ΡΠ²ΠΊΠΈ). ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π½Π΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΡΠ΅ΠΊΠΎΠ²Π΅ QUIC ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°Π±ΠΎΡΠ° Π²ΡΡΡ
Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» QUIC. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° QUIC β ngtcp2, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. ΠΠ°ΡΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ngtcp2 ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ quictls, GnuTLS, BoringSSL, Picotls ΠΈ wolfSSL. ΠΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Ρ nghttp3 1.0 Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ ΠΈ ΠΏΡΡΠ²ΠΈΡΡ ΡΡΠ°Π±ΠΈΠ»Π΅Π½ ΡΠ΅Π»ΠΈΠ· ngtcp2 1.0.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
