HTTP/3.0 získal navrhnutý štandardný stav

IETF (Internet Engineering Task Force), ktorá je zodpovedná za vývoj internetových protokolov a architektúry, dokončila vytvorenie RFC pre protokol HTTP/3.0 a zverejnila súvisiace špecifikácie pod identifikátormi RFC 9114 (protokol) a RFC 9204 ( Technológia kompresie hlavičiek QPACK pre HTTP/3) . Špecifikácia HTTP/3.0 získala status “Proposed Standard”, po ktorom sa začne pracovať na tom, aby RFC dostal štatút návrhu štandardu (Draft Standard), čo vlastne znamená úplnú stabilizáciu protokolu a zohľadnenie všetkých vyjadrené pripomienky. Zároveň boli zverejnené aktualizované verzie špecifikácií pre protokoly HTTP/1.1 (RFC 9112) a HTTP/2.0 (RFC 9113), ako aj dokumenty definujúce sémantiku HTTP požiadaviek (RFC 9110) a hlavičky riadenia vyrovnávacej pamäte HTTP. (RFC 9111).

Protokol HTTP/3 definuje použitie protokolu QUIC (Quick UDP Internet Connections) ako prenosu pre HTTP/2. QUIC je rozšírenie protokolu UDP, ktoré podporuje multiplexovanie viacerých pripojení a poskytuje metódy šifrovania ekvivalentné TLS/SSL. Protokol bol vytvorený v roku 2013 spoločnosťou Google ako alternatíva ku kombinácii TCP+TLS pre web, riešil problémy s dlhým nastavovaním pripojenia a vyjednávacími časmi v TCP a eliminoval oneskorenia pri strate paketov počas prenosu dát.

HTTP/3.0 získal navrhnutý štandardný stav

V súčasnosti je podpora QUIC a HTTP/3.0 už implementovaná vo všetkých populárnych webových prehliadačoch (v Chrome, Firefox a Edge je podpora HTTP/3 štandardne povolená a v Safari vyžaduje nastavenie „Rozšírené > Experimentálne funkcie > HTTP/3“ byť povolené). Na strane servera sú implementácie HTTP/3 dostupné pre nginx (v samostatnej vetve a vo forme samostatného modulu), Caddy, IIS a LiteSpeed. Podporu HTTP/3 poskytuje aj sieť na doručovanie obsahu Cloudflare.

Kľúčové vlastnosti QUIC:

  • Vysoká bezpečnosť podobná TLS (v podstate QUIC poskytuje možnosť používať TLS cez UDP);
  • Kontrola integrity toku, zabránenie strate paketov;
  • Možnosť okamžitého nadviazania spojenia (0-RTT, v približne 75 % prípadov je možné preniesť dáta ihneď po odoslaní paketu na nastavenie spojenia) a poskytnúť minimálne oneskorenia medzi odoslaním požiadavky a prijatím odpovede (RTT, Round Trip Time) ;
    HTTP/3.0 získal navrhnutý štandardný stav
  • Použitie iného poradového čísla pri opätovnom prenose paketu, čo zabráni nejednoznačnosti pri identifikácii prijatých paketov a zbaví sa časových limitov;
  • Strata paketu ovplyvňuje iba doručovanie toku, ktorý je s ním spojený, a nezastavuje doručovanie údajov v paralelných tokoch prenášaných cez aktuálne spojenie;
  • Funkcie opravy chýb, ktoré minimalizujú oneskorenia v dôsledku opätovného prenosu stratených paketov. Použitie špeciálnych kódov na opravu chýb na úrovni paketov na zníženie situácií vyžadujúcich opakovaný prenos stratených paketových dát.
  • Hranice kryptografických blokov sú zarovnané s hranicami paketov QUIC, čo znižuje vplyv strát paketov na dekódovanie obsahu nasledujúcich paketov;
  • Žiadne problémy s blokovaním fronty TCP;
  • Podpora pre identifikátor pripojenia, ktorý znižuje čas potrebný na vytvorenie opätovného pripojenia pre mobilných klientov;
  • Možnosť pripojenia pokročilých mechanizmov kontroly preťaženia pripojenia;
  • Používa techniky predpovedania priepustnosti v každom smere, aby sa zabezpečilo, že pakety budú odosielané optimálnou rýchlosťou, čím sa zabráni ich preťaženiu a strate paketov;
  • Výrazné zvýšenie výkonu a priepustnosti v porovnaní s TCP. V prípade video služieb, ako je YouTube, sa ukázalo, že QUIC znižuje operácie opätovného vyrovnávania pamäte pri sledovaní videí o 30 %.

Zo zmien v špecifikácii HTTP/1.1 si možno všimnúť zákaz izolovaného používania znaku CR (CR) mimo tela s obsahom, t.j. V prvkoch protokolu môže byť znak CR použitý len v spojení so znakom riadka (CRLF). Algoritmus rozloženia chunked request bol vylepšený, aby sa zjednodušilo oddelenie pripojených polí a sekcií s hlavičkami. Pridané odporúčania na spracovanie nejednoznačného obsahu na blokovanie útokov „HTTP Request Smuggling“, ktoré nám umožňujú vkliesniť sa do obsahu požiadaviek iných používateľov v toku medzi frontendom a backendom.

Aktualizácia špecifikácie HTTP/2.0 explicitne definuje podporu pre TLS 1.3. Zastaraná schéma stanovenia priorít a súvisiace polia hlavičky. Nepoužívaný mechanizmus na aktualizáciu spojenia s HTTP/1.1 bol vyhlásený za zastaraný. Znížené požiadavky na kontrolu názvov polí a hodnôt. Na použitie sú navrhnuté niektoré predtým vyhradené typy rámcov a parametre. Zakázané polia hlavičky súvisiace s pripojením sú presnejšie definované.

Zdroj: opennet.ru

Pridať komentár