IETF (Internet Engineering Task Force), mis tegeleb interneti protokollide ja arhitektuuri arendamisega, on lõpetanud HTTP/3.0 protokolli RFC kujundamise ning avaldanud sellega seotud spetsifikatsioonid identifikaatoritega RFC 9114 (protokoll) ja RFC 9204 (QPACK pealkirjade kompressioonitehnoloogia HTTP/3 jaoks). HTTP/3.0 spetsifikatsioon sai "Eelnõu standardi" staatuse, mille järel algab töö RFC staatuse andmiseks mustandstandardiks (Draft Standard), mis tähistab protokolli täielikku stabiliseerimist ja kõikide esitatud märkuste arvesse võtmist. Samuti on avaldatud värskendatud spetsifikatsioonid HTTP/1.1 (RFC 9112) ja HTTP/2.0 (RFC 9113) protokollide jaoks ning dokumendid, mis määratlevad HTTP-päringute semantika (RFC 9110) ja HTTP vahemälu juhtimise pealkirjad (RFC 9111).
HTTP/3 protokoll määratleb QUIC (Quick UDP Internet Connections) protokolli kasutamise HTTP/2 transpordiks. QUIC on UDP protokolli peal ehitatud kiht, mis toetab mitme ühenduse multiplexerimist ja pakub krüpteerimismeetodeid, mis on võrreldavad TLS/SSL-iga. Protokoll loodi 2013. aastal Google'i poolt TCP+TLS alternatiivina veebis, lahendades TCP-s ühenduse loomise ja kokkuleppimise pikad ajad ning kõrvaldades viivitused andmete edastamise käigus pakettide kadumise tõttu.

Praeguseks on QUIC ja HTTP/3.0 tugi juba rakendatud kõigis populaarsetes veebibrauserites (Chrome'is, Firefoxis ja Edge'is on HTTP/3 tugi vaikimisi lubatud, Safari puhul nõuab see seadistuse "Advanced > Experimental Features > HTTP/3" lubamist). Serveri poolel on HTTP/3 rakendused saadaval nginx'i jaoks (eraldi haru ja eraldi moodulina), Caddy, IIS ja LiteSpeed. HTTP/3 toimetab ka Cloudflare sisu edastamise võrk.
QUIC peamised omadused:
- Kõrge turvalisus, mis on sarnane TLS-ile (QUIC võimaldab tegelikult kasutada TLS-i UDP peal);
- Voogude terviklikkuse kontrollimine, mis takistab pakettide kadumist;
- Võimalus kohe ühendus luua (0-RTT, umbes 75% juhtudest on andmed saadaval kohe pärast ühenduse loomise paketi saatmist) ja tagada minimaalne viivitus päringu saatmise ja vastuse saamise vahel (RTT, Round Trip Time);

- Pakettide uuesti edastamisel kasutatakse erinevat järjestuse numbrit, mis aitab vältida segadust vastuvõetud pakettide määratlemisel ja kaotab aegumise probleemid;
- Paketi kadu mõjutab ainult seotud voogu ja ei peata andmete edastamist paralleelselt edastatavatest voogudest läbi praeguse ühenduse;
- Vigade parandamise vahendid, mis minimeerivad viivitused kadunud pakettide kordussaatmise tõttu. Spetsiaalsete vigade parandamise koodide kasutamine paketi tasandil, et vähendada olukordade arvu, mis vajavad kadunud paketi andmete uuesti edastamist.
- Krüptograafiliste plokkide piirid on joondatud QUIC pakettide piiride külge, mis vähendab pakettide kadumise mõju järgmiste pakettide sisu dekodeerimisele;
- TCP järjekorra ummistusega seotud probleeme pole.
- Ühenduse identifikaatori toetus, mis võimaldab mobiilsete klientide uuesti ühendamise aega lühendada;
- Täpsemate ühenduse koormusjuhtimise mehanismide toetus;
- Võimet kasutada igas suunas läbipääsutehnika prognoosimist, et tagada optimaalne pakettide saatmise intensiivsus, vältides ülekoormusse sattumist, mille korral toimub pakettide kadu;
- Märkimisväärne jõudluse ja läbilaskevõime kasvu võrreldes TCP-ga. Videoteenuste, nagu YouTube, puhul on QUIC kasutamine näidanud, et video vaatamise ajal on puhverdamise uuesti tegemise operatsioonide arv vähenenud 30%.
HTTP/1.1 spetsifikatsiooni muudatusi on oluliselt, sealhulgas keelatakse käskuda kusagil mujal, kui sisu kehast, st protokolli elementides võib CR sümbolit kasutada ainult koos rea lõhkumise sümboliga (CRLF). Chunked-päringute koostamise algoritmi on täiustatud, et hõlbustada eraldamist manustatud väljadest ja pealkirjade sektsioonist. Määratud on soovitused ebaselge sisu käsitlemiseks, et takistada "HTTP Request Smuggling" rünnakute võimalust, mis võimaldavad teiste kasutajate päringute sisu voolu sisse imbuda frontendi ja backend'i vahel.
HTTP/2.0 spetsifikatsiooni uuenduses on selgelt määratletud TLS 1.3 tugi. Prioriteetide määratlemise skeem ja sellega seotud väljad on liigitatud vananenud kategooriasse. HTTP/1.1 ga seotud ühenduse uuendamise mehhanism on kuulutatud vananenud. Väljade nimede ja väärtuste kontrollimise nõuded on vähendatud. Mõned varasemalt reserveeritud kaadritypid ja parameetrid on soovitatud kasutamiseks. Ühendusele kuuluvad pealkirjade keelatud väljad on täpsemalt määratletud.
Allikas: opennet.ru

