IETF (Internet Engineering Task Force), mis tegeleb interneti protokollide ja arhitektuuri arendamisega, lõpetas HTTP/3.0 protokolli jaoks RFC-de koostamise ning avaldas sellega seotud spetsifikatsioonid identifikaatoritega RFC 9114 (protokoll) ja RFC 9204 (QPACK pealkirjade kokkusurumise tehnoloogia HTTP/3 jaoks). HTTP/3.0 spetsifikatsioon sai "Eesmärgistatud standardi" staatuse, mille järel algab töö RFC staatuse andmiseks mustandi standardiks (Draft Standard), mis sisuliselt tähendab protokolli täielikku stabiliseerimist ja kõigi esitatud märkuste arvestamist. Samuti avaldati värskendatud versioonid HTTP/1.1 (RFC 9112) ja HTTP/2.0 (RFC 9113) spetsifikatsioonidest, samuti dokumendid, mis määratlevad HTTP-päringute semantika (RFC 9110) ja HTTP vahemälu haldamise 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 multipleximist ja tagab krüpteerimise meetodid, mis on ekvivalentne TLS/SSL-iga. Protokolli lõi 2013. aastal Google, et pakkuda alternatiivi TCP+TLS-kombinatsioonile Webis, lahendades TCP-s ühenduste loomise ja ühtlustamise pika aja probleemid ning kõrvaldates andmete edastamise ajal pakettide kadumise viivitused.

Praegu on QUIC ja HTTP/3.0 tugi juba rakendatud kõigis populaarsetes veebibrauserites (Chrome'is, Firefoxis ja Edge'is on HTTP/3 tugi vaikimisi sisse lülitatud, Safari puhul on vajalik aktiveerida seadistus "Advanced > Experimental Features > HTTP/3"). Serveripoolsed HTTP/3 rakendused on saadaval nginx-is (erinevas harus ja eraldi moodulina), Caddy's, IIS-is ja LiteSpeed'is. HTTP/3 tuge pakub ka Cloudflare'i sisu edastamise võrk.
QUICi põhijooned:
- Kõrge turvalisus, võrreldav TLS'iga (QUIC pakub tegelikult võimalust kasutada TLS'i UDP peal);
- Voolu terviklikkuse jälgimine, mis takistab pakettide kaotust;
- Võimalus luua ühendus koheselt (0-RTT, umbes 75% juhtudel saab andmeid edastada kohe pärast ühenduse loomise paketi saatmist) ja tagada minimaalne viivitus päringu saatmise ja vastuse saamise vahel (RTT, Round Trip Time);

- Paketi uuesti edastamisel kasutatakse teistsugust järjestuse numbrit, mis võimaldab vältida mitmeti mõistetavust saadud pakettide määratlemisel ja kõrvaldada aegumise probleemid;
- Paketi kaotus mõjutab ainult selle kaasnevat voolu ja ei peata andmete edastamist samaaegselt praeguse ühenduse kaudu edastatavatest voogudest;
- Vigade parandusmeetmed, mis minimeerivad viivitusi kadunud pakettide uuesti edastamise tõttu. Eriliste vigade parandamise koodide kasutamine paketi tasemel, et vähendada olukordi, mis nõuavad kadunud paketi andmete uuesti edastamist.
- Krüptograafiliste plokkide piirid on joondatud QUIC pakettide piiridega, mis vähendab pakettide kaotuse mõju järgmiste pakettide sisu dekodeerimisele;
- TCP järjekorra ummistumise probleemide puudumine;
- Ühenduse identifikaatori tugi, mis võimaldab vähendada mobiilsete klientide uuesti ühendamise aega;
- Võime ühendada laienevaid ühenduse ülekande kontrolli mehhanisme;
- Igas suunas läbilaskevõime ennustamise tehnika kasutamine, et tagada pakkide edastamise optimaalne intensiivsus, vältides üleminekuid koormuse seisundisse, kus esineb pakettide kaotust;
- Tähtis jõudluse ja ribalaiuse kasv võrreldes TCP-ga. Video teenustes, nagu YouTube, on QUIC-i kasutamine vähendanud videote vaatamisel vahemälu operatsioone 30%.
HTTP/1.1 spetsifikatsiooni muudatustest tuleks märkida tagasilöögi sümboli (CR) iseseisva kasutamise keelu, st protokolli elementides võib CR sümbolit kasutada ainult koos reavahetuse sümboliga (CRLF). Chunked-päringute koostamise algoritmi on täiustatud, et lihtsustada kinnitatud väljade ja päiste sektsioonide eraldamist. Lisatud on soovitused ebaselgete sisu käsitlemiseks, et blokeerida 'HTTP Request Smuggling' rünnakud, mis võimaldavad tungida teiste kasutajate päringute sisu vahelise voolu, mis liigub frontendi ja backend'i vahel.
HTTP/2.0 spetsifikatsiooni uuenduses on TLS 1.3 tugi selgelt määratletud. Prioriteetide määramise skeem ja sellega seotud väljad on tõlgitud vananenud kategooriasse. HTTP/1.1-ga koopiate uuendamise mehhanism, mis ei ole levinud, kuulutatakse vananenuks. Väljade nimede ja väärtuste kontrollimise nõuded on vähendatud. Kasutamiseks on soovitatud mõned varem reserveeritud kaader tüübid ja parameetrid. Täpsustatakse keelatud päiste väljad, mis on seotud ühendusega.
Allikas: opennet.ru

