nedávno IETF (Internet Engineering Task Force), ktorá vyvíja protokoly a architektúru internetu, oznámil to správa, že dokončilo vytvorenie RFC pre protokol HTTP/3.0 a zverejnil súvisiace špecifikácie pod identifikátormi RFC 9114 a RFC 9204.
Špecifikácia HTTP/3.0 získal status „Proposed Standard“, po ktorých sa začne pracovať na tom, aby RFC dostal štatút návrhu normy (Draft Standard), čo vlastne znamená úplnú stabilizáciu protokolu a zohľadnenie všetkých vznesených pripomienok.
protokol HTTP/3 definuje použitie protokolu QUIC (Rýchle internetové pripojenia UDP) ako prenos pre HTTP/2. QUIC je doplnok 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 k TCP + TLS pre web, vyriešenie problému dlhého nastavovania pripojenia a času vyjednávania v TCP a eliminácia oneskorení v dôsledku straty paketov počas prenosu dát.
V súčasnej dobe, Podpora QUIC a HTTP/3.0 je už implementovaná vo všetkých prehliadačoch obľúbené webové stránky. Na strane servera sú implementácie HTTP/3 dostupné pre nginx (v samostatnej vetve a ako samostatný modul), Caddy , IIS a LiteSpeed. HTTP/3 podporuje aj sieť na doručovanie obsahu Cloudflare.
Hlavné vlastnosti QUIC:
- Vysoká bezpečnosť, podobná TLS (v skutočnosti QUIC poskytuje možnosť používať TLS cez UDP)
- Kontrola integrity prenosu, aby sa zabránilo strate paketov
- Schopnosť okamžite nadviazať spojenie a zabezpečiť minimálne oneskorenia medzi odoslaním požiadavky a prijatím odpovede (RTT, spiatočný čas)
- Pri opakovanom prenose paketu použite iné poradové číslo, čo vám umožní vyhnúť sa nejednoznačnosti pri určovaní prijatých paketov a zbaviť sa časových limitov
- Strata paketu ovplyvňuje doručenie iba s ním spojeného streamu a nezastaví doručenie dát v prúdoch prenášaných paralelne cez súčasné pripojenie.
- Nástroje na opravu chýb, ktoré minimalizujú oneskorenia v dôsledku opakovaného prenosu stratených paketov. Použitie špeciálnych kódov na opravu chýb na úrovni paketov na zníženie situácií, ktoré vyžadujú opakovaný prenos stratených paketových dát.
- Hranice kryptografických blokov sú zarovnané s hranicami paketov QUIC, čím sa znižuje vplyv straty paketov na dekódovanie obsahu nasledujúcich paketov
- Žiadne problémy s blokovaním frontu TCP
- Podpora identifikácie pripojenia na skrátenie času opätovného pripojenia pre mobilných klientov
- Možnosť pripojenia pokročilých mechanizmov pre kontrolu preťaženia pripojenia
- Použite techniky predikcie šírky pásma v každom smere, aby ste zaistili optimálne rýchlosti preposielania paketov a vyhli sa tak preťaženiu, pri ktorom sa pakety stratia.
- Pozoruhodný výkon a zvýšenie výkonu oproti TCP. Pre video služby ako YouTube sa ukázalo, že QUIC znižuje operácie ukladania videa do vyrovnávacej pamäte o 30 %.
Okrem toho boli tiež súčasne zverejnené aktualizované verzie špecifikácií pre protokoly HTTP/1.1 (RFC 9112) a HTTP/2.0 (RFC 9113) a dokumenty, ktoré definujú sémantiku HTTP požiadaviek (RFC 9110) a hlavičky riadenia ukladania do vyrovnávacej pamäte HTTP (RFC 9111).
Zo zmien v špecifikáciu HTTP/1.1, môžete si všimnúť zákaz od samostatného použitia znaku návrat vozíka (CR) mimo tela s obsahom, teda v prvkoch protokolu možno znak CR použiť len spolu so znakom nového riadku (CRLF).
El Algoritmus rozloženia chunked request bol vylepšený na zjednodušenie oddelenia pripojených polí a sekcií s hlavičkami. Pridané pokyny na spracovanie nejednoznačného obsahu na blokovanie útokov triedy „HTTP Request Smuggling“, ktoré môžu zasahovať 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 priorizácie a súvisiace polia hlavičky a mechanizmus aktualizácie zastarané pripojenie HTTP/1.1 bolo zastarané.
Nakoniec, ak máte záujem dozvedieť sa o ňom viac, podrobnosti si môžete prečítať v nasledujúci odkaz.