Komiteti IETF (Internet Engineering Task Force), që merret me zhvillimin e protokolleve dhe arkitekturës së internetit, përfundoi formimin e RFC për protokollin HTTP/3.0 dhe publikoi spesifikimet përkatëse me identifikuesit RFC 9114 (protokolli) dhe RFC 9204 (teknologjia e kompresimit të titujve QPACK për HTTP/3). Specifikimi HTTP/3.0 mori statusin e ‘Standardit të Propozuar’, pas së cilës do të fillojë puna për t’i dhënë RFC statusin e standardit të projektit (Draft Standard), i cili në fakt do të thotë stabilizim të plotë të protokollit dhe marrjen parasysh të të gjitha vërejtjeve të shtruara. Njëkohësisht, u publikuan variante të përditësuara të specifikimeve për protokollet HTTP/1.1 (RFC 9112) dhe HTTP/2.0 (RFC 9113), si dhe dokumente që përcaktojnë semantikën e kërkesave HTTP (RFC 9110) dhe titujt e menaxhimit të keqkodimit (RFC 9111).
Protokolli HTTP/3 përcakton përdorimin e protokollit QUIC (Quick UDP Internet Connections) si transport për HTTP/2. QUIC paraqet një shtresë mbi protokollin UDP, që mbështet shumë lidhje dhe ofron metoda enkriptimi, ekuivalente me TLS/SSL. Protokolli u krijua në vitin 2013 nga Google si një alternativë për TCP+TLS për Webin, duke zgjidhur problemet me kohën e madhe të vendosjes dhe negociatës së lidhjeve në TCP, dhe eliminon vonesat gjatë humbjes së pacakove gjatë procesit të transferimit të të dhënave.

Aktualisht mbështetje për QUIC dhe HTTP/3.0 është tashmë implementuar në të gjithë shfletuesit web të njohur (në Chrome, Firefox dhe Edge mbështetje për HTTP/3 është e aktivizuar si parazgjedhje, ndërsa në Safari kërkon aktivizimin e cilësimit 'Advanced > Experimental Features > HTTP/3'). Në anën e serverit, implementimet e HTTP/3 janë të disponueshme për nginx (në një degë të veçantë dhe në formën e një moduli të veçantë), Caddy, IIS dhe LiteSpeed. Mbështetje për HTTP/3 gjithashtu ofron rrjeti i shpërndarjes së përmbajtjes Cloudflare.
Karakteristikat kryesore të QUIC:
- Siguri e lartë, e ngjashme me TLS (në thelb QUIC ofron mundësinë e përdorimit të TLS mbi UDP);
- Kontrolli mbi integritetin e rrjedhës, që parandalon humbjen e pacakove;
- Mundësia për të vendosur menjëherë një lidhje (0-RTT, në rreth 75% të rasteve të dhënat mund të transmetohen menjëherë pas dërgimit të paketës së vendosjes së lidhjes) dhe për të siguruar vonesa minimale midis dërgimit të kërkesës dhe marrjes së përgjigjes (RTT, Round Trip Time);

- Përdorimi i një numri tjetër sekonda për dërgimin e paketave përsëritëse, gjë që lejon shmangien e dyshimeve në përcaktimin e paketave të pranuara dhe eliminon vonesat;
- Humorja e paketës ndikon vetëm në dërgesën e fluksit lidhur me të dhe nuk ndalon dërgimin e të dhënave në flukset që dërgohen paralelisht nëpërmjet lidhjes aktuale;
- Mjetet për korrigjimin e gabimeve, që minimizojnë vonesat për shkak të dërgimit përsëritës të paketave të humbura. Përdorimi i kodeve speciale për korrigjimin e gabimeve në nivelin e paketës për të reduktuar situatat që kërkojnë dërgim përsëritës të të dhënave të paketës së humbur.
- Kufijtë e bllokave kriptografikë janë përputhur me kufijtë e paketave QUIC, duke zvogëluar ndikimin e humbjeve të paketave në dekodimin e përmbajtjes së paketave të ardhshme;
- Mungesa e problemeve me bllokimin e radhës TCP;
- Mbështetje për identifikuesin e lidhjes, që lejon zvogëlimin e kohës për vendosjen e lidhjes përsëritëse për klientët mobilë;
- Mundësia e lidhjes së mekanizmave të zgjeruar të kontrollit të ngarkesës së lidhjes;
- Përdorimi i teknikave të parashikimit të kapacitetit në çdo drejtim për të siguruar intensitetin optimal të dërgimit të paketave, duke parandaluar rënien në një gjendje ngarkese, ku humbjet e paketave vërehen;
- Rritje e dukshme e performancës dhe kapacitetit krahasuar me TCP. Për shërbimet video si YouTube, aplikimi i QUIC ka treguar një reduktim prej 30% të operacioneve të ri-buffering gjatë shikimit të videove.
Nga ndryshimet në specifikimin e HTTP/1.1, mund të theksohet ndalimi i përdorimit të veçantë të simbolit të kthimit të karikës (CR) jashtë trupit përmbajtësor, dmth, në elementët e protokollit, simboli CR mund të përdoret vetëm së bashku me simbolin e kalimit të radhës (CRLF). Algoritmi i rregullimit të kërkesave chunked është përmirësuar për të thjeshtuar ndarjen e fushave të bashkangjitura dhe seksionit të titujve. Janë shtuar rekomandime për përpunimin e përmbajtjeve të paqartësisë për të bllokuar sulmet e klasës 'HTTP Request Smuggling', që lejojnë ndërhyrjen në përmbajtjen e kërkesave të përdoruesve të tjerë në fluxin midis front-end dhe back-end.
Në përditësimin e specifikimeve HTTP/2.0, mbështetja për TLS 1.3 është përcaktuar qartë. Schema e definicionit të prioritetit dhe fushat e lidhura në tituj janë klasifikuar si të destinuara për t'u konsideruar të vjetëruara. Mënyra e rifreskimit të lidhjes me HTTP/1.1, e cila nuk ka gjetur përhapje, është shpallur e vjetëruar. Kërkesat për verifikimin e emrave të fushave dhe vlerave janë reduktuar. Disa lloje kadri dhe parametra të rezervuar më parë janë rekomanduar për t'u përdorur. Fushat e ndaluara të titujve që lidhen me lidhjen janë përcaktuar më në detaje.
Burimi: opennet.ru

