V dobe, ktorá je definovaná rýchlosťou a bezpečnosťou, predstavuje HTTP/3 významný krok vpred v evolúcii webu. HTTP/3 je v poradí tretia hlavná verzia protokolu Hypertext Transfer Protocol (HTTP) používaného na výmenu informácií na webe. Dopĺňa rozšírené verzie HTTP/1.1 a HTTP/2.
Zásadným rozdielom od predchádzajúcich verzií, ktoré sa spoliehali na osvedčený protokol TCP HTTP/3 používa QUIC, čo je multiplexovaný transportný protokol postavený na UDP.
TCP vs UDP
Rozdiel medzi TCP (Transmission Control Protocol) a UDP (User Datagram Protocol) spočíva v ich prístupe k prenosu dát cez internet. Tieto dva protokoly sú základnými stavebnými kameňmi internetovej komunikácie, ale každý z nich rieši prenos dát odlišne, čo má za následok rôzne vlastnosti a použitie.
TCP zabezpečuje spoľahlivý prenos dát. Tento protokol používa potvrdzovací mechanizmus, ktorý zaisťuje, že všetky odoslané dáta dosiahnu cieľové zariadenie v presnom poradí, v akom boli odoslané. Má mechanizmy na riadenie, ktoré zabraňujú preťaženiu siete. Pred samotným prenosom dát dochádza k procesu tzv. „handshake“, kde sa obidva koncové body dohodnú na parametroch spojenia. TCP zabezpečuje, že všetky segmenty dát sú doručené v správnom poradí.
UDP nezaručuje doručenie dát. Namiesto toho odosiela dáta bez toho, aby čakal na potvrdenie príjemcu. Neexistuje iniciálne nastavenie spojenia pred odoslaním dát, čo umožňuje rýchlejšie odosielanie dát. Dáta odoslané cez UDP môžu prísť v akomkoľvek poradí, nie nutne v tom, v akom boli odoslané.
QUIC
QUIC (Quick UDP Internet Connections) protokol bol navrhnutý na zníženie latencie a zlepšenie výkonu internetových spojení. Bol vyvinutý spoločnosťou Google. QUIC sa rozvinul až do štandardu pod záštitou Internet Engineering Task Force (IETF). Kombinuje funkcie TCP a TLS do jediného protokolu, čím výrazne znižuje čas potrebný na nastavenie spojenia. Ako sme už spomínali, tak QUIC funguje na báze UDP.
Efektívne spojenia
Prvou zmenou je výrazné zníženie réžie počas nastavovania pripojenia. Keďže väčšina spojení HTTP bude vyžadovať TLS, QUIC robí výmenu kľúčov a podporovaných protokolov súčasťou počiatočného procesu handshake. Keď klient otvorí spojenie, paket s odpoveďou obsahuje údaje potrebné na to, aby tie budúce používali šifrovanie. Tým sa eliminuje potreba nastavovať spojenie TCP a následne dohadovať bezpečnostný protokol prostredníctvom ďalších paketov. Rovnakým spôsobom sa dajú obsluhovať aj iné protokoly, ktoré spájajú viacero krokov do jedného páru požiadavka-odpoveď.
Spoľahlivosť a bezpečnosť
Povedali sme si, že UDP nezaručuje doručenie dát. Ako teda môže byť prenos spoľahlivý a bezpečný? Tok dát QUIC riadi samostatne pre každú časť a stratené údaje sa opätovne prenášajú na úrovni QUIC, nie UDP. To znamená, že ak dôjde k chybe v jednom toku napríklad nejakom obrázku, tak načítanie môže pokračovať ostatných častiach a nezasekne sa. To môže byť veľmi užitočné pri zvyšovaní výkonu na linkách náchylných na chyby, pretože vo väčšine prípadov sa môžu prijímať ďalšie dáta. V QUIC sa tieto údaje môžu voľne spracúvať, kým sa opravuje problemový multiplexovaný tok.
Ďalšie výhody QUIC
QUIC obsahuje aj niekoľko ďalších zmien, ktoré tiež zlepšujú celkovú latenciu a priepustnosť. Napríklad pakety sa šifrujú jednotlivo, takže nedochádza k tomu, že by šifrované údaje čakali na čiastkové pakety. To nie je vo všeobecnosti možné v rámci protokolu TCP. Cieľom QUIC bolo zlepšiť výkon počas udalostí prepínania siete, ako napríklad to, čo sa deje, keď používateľ mobilného zariadenia prejde z miestneho WiFi hotspotu do mobilnej siete. Keď k tomu dôjde v protokole TCP, spustí sa zdĺhavý proces, v ktorom sa každé existujúce spojenie postupne prerušuje a potom sa na požiadanie znovu vytvorí.
Na vyriešenie tohto problému obsahuje QUIC identifikátor spojenia, ktorý jednoznačne označí spojenie so serverom bez ohľadu na zdroj. To umožňuje opätovné nadviazanie spojenia jednoduchým odoslaním paketu, ktorý vždy obsahuje tento identifikátor, pretože pôvodný identifikátor spojenia bude stále platný, aj keď sa zmení IP adresa používateľa.
Webové prehliadače
Zapnutá podpora pre HTTP/3 v prehliadačoch:
- Google Chrome, verzia 87 od apríla 2020
- Microsoft Edge, verzia 87 od apríla 2020
- Mozilla Firefox, verzia 88 od apríla 2021
- Apple Safari, verzia 16.4 od marca 2023
Servery
Zapnutá podpora pre HTTP/3 vo webových serveroch:
- LiteSpeed Web Server (a OpenLiteSpeed) od verzie 6.0.2
- Caddy web server od verzie 2.6.0
- Nginx od verzie 1.25.0
- HAProxy od verzie 2.6
- Microsoft IIS vo Windows Server 2022 a Windows 11
Záver
Otestovať si dostupnosť HTTP/3 môžete napríklad na http3check.net. HTTP/3 v porovnaní s predchádzajúcimi verziami má nižšiu latenciu a v reálnom nasadení sa načítava rýchlejšie, v niektorých prípadoch viac ako 3× rýchlejšie ako v prípade HTTP/1.1.
Môže to byť aj váš prípad – radi vám pomožeme s nasadením HTTP/3 na našich Websupport Managed services.
S rastúcou adopciou v prehliadačoch a aplikáciách, HTTP/3 otvára dvere pre novú éru v internetovej komunikácii, kde rýchlosť a bezpečnosť idú ruka v ruke. Jeho vývoj a implementácia sú sľubným krokom vpred pre budúce generácie webových technológií a internetových služieb.