Mi az a HTTP/3? És miért lehet számodra is hasznos?

A HTTP protokoll – mely a kliens és a szerver közötti adattovábbításról szól -, az elmúlt években több fejlődési fokozaton ment át. Annak idején mi is írtunk a HTTP/2-ről, mára azonban eljutottunk a HTTP/3-ig, mely további előrelépést jelent, új funkciókkal.

Korábban, a HTTP/2-ről írt anyagunkban már áttekintettük a Hypertext Transfer Protocol, azaz a HTTP történetét, így ezt most nem nézzük ismét végig. Ehelyett inkább a HTTP/3-ra koncentrálunk, melynél további javítások történtek a fájlátvitelek kezelésében. Egyrészt elmozdult a TCP-től (Transmission Control Protocol) az UDP-hez (User Datagram Protocol), így letudva néhány TCP miatti korlátot, illetve tovább javult a teljesítmény és a felhasználói biztonság. És habár a végső közzététel még nem történt meg, a böngészők 75 százaléka (2022 júliusában) már támogatja. Ha a Safarinak is sikerül megoldani, ez a 75 százalék nagyot fog ugrani felfelé.

Emellett érdemes tudni, hogy az úgynevezett top 10 millió weboldalnak a 25 százaléka – többek között a Google és a Facebook – már használja a HTTP/3 protokollt. Tulajdonképpen, ha használsz olyan eszközöket, mint a Google Analytics, a Tag Manager vagy a Google Fonts, akkor már részben Te is használtad a protokollt.

De mi is a HTTP/3 és milyen előnyei vannak?

Mint a régebbi, HTTP/2-ről szóló bejegyzésünkben is olvashattad, a HTTP/1.1 úgy működött, hogy minden egyes fájlnak meg volt a maga kapcsolata. A weboldalak azonban elég bonyolultak kezdtek lenni, és elég sok fájlt kellett átvinni egy weboldal betöltéséhez. A böngészők korlátozták a párhuzamos kapcsolatokat, így pedig lassult a betöltési idő. A HTTP/2 ezt a problémát oldotta meg úgy, hogy lehetővé tette egyetlen kapcsolaton több fájl átvitelét. Ez persze még nem oldott meg minden nehézséget, melyet a TCP protokoll okozott.

A TCP ugyanis kronologikus sorrendben szállítja a csomagokat, ami azt is jelenti, hogy ha egy csomag hiányzik, akkor az egész kapcsolat leáll, egészen addig, amíg meg nem érkezik az adott csomag. Emiatt pedig hiába történhetett egyszerre több fájl átvitele, ha a TCP miatt megállt időnként a folyamat.

De volt egy másik probléma is a TCP-vel. Ez pedig az, hogy nincs összekapcsolva a TLS protokoll használatával. Ez azt jelenti, hogy weboldalak lehetnek egyszerre biztonságosak és nem biztonságosak. Eredményeként pedig a szerver és kliens között bonyolultabbá válik a kommunikáció az adatok továbbítása előtt.

A HTTP/3 ezt úgy oldja meg, hogy a TCP helyett UDP-t használ és ezáltal három olyan funkcióval találkozhatunk, ami megkülönbözteti a HTTP/1.1-től és a HTTP/2-től. Egyrészt megjelenik a független bytefolyamokat az egyes fájlokhoz, ami azt jelenti, hogy az elveszett csomagok miatt nem az egész kapcsolat áll le, csak egy bizonyos folyam, egészen addig, amíg a csomag újraküldésre nem kerül.

A másik dolog a TLS integráció, vagyis a TLS 1.3 beépítése a HTTP/3-ba. Tehát itt már nem két külön protokoll egymástól független működéséről van szó, hanem egyetlen kézfogás elegendő, vagyis az utak számának csökkenése kettőről (illetve TLS 1.2 esetén háromról) egyre. Ez pedig gyorsabb és biztonságosabb kapcsolatot jelent a felhasználók számára.

Persze ennek következménye az is, hogy a HTTP/3 csak biztonságos weboldalakon használható, hiszen a TLS és az UDP szorosan összefonódik. Technikailag a HTTP/2 használható lett volna nem biztonságos oldalakon is, azonban ez azért nem történt meg mégsem, mert egyetlen nagyobb böngésző sem tette lehetővé.

Végül egy további nagy változás, hogy IP-k használata helyett a HTTP/3 kapcsolati ID-ket használ a csomagok irányítására. Ez azt jelenti, hogy kezelni tudja a hálózati változásokat anélkül, hogy újra kellene építeni a kapcsolatot. Ez pedig rendkívül hasznos dolog a mobilos netezés korában, amikor a felhasználók gyakran váltanak például wifi és mobilhálózat között.

Van valami hátulütője is a HTTP/3-nak?

Mindez nagyon jól hangzik, de minden szép dolognak van árnyoldala is. A HTTP/3 sem tökéletes. Az egyik probléma, hogy a HTTP/3 nem igazán fog jelentős előnyt kínálni az egyébként is gyors kapcsolatot használó felhasználóknak. Akik számára érezhető lesz a gyorsulás, azok a leglassabb 1-10 százalék közé tartoznak.

Ez ugyanakkor a webes vitals mutatókat illetően hasznos lehet. Mármint olyan szempontból, hogy mivel a webes vitals mutatók globálisak, így előfordulhat, hogy egy távoli földrajzi helyen lévő felhasználói csoport miatt gyenge a szám. De persze a mobilos netezés korában akár a földrajzilag közel lévő és gyors eszközökkel rendelkező felhasználókat is elérhetnek hálózati problémák, amik nem jók a webes vitals mutatók szempontjából.

De visszatérve a hátrányokra, egy másik panasz azzal kapcsolatos, hogy a HTTP/3-ra váltás miatt jelentősebb szerverfrissítést igényel, hiszen alapvetően változtatja meg, ahogy a szállítási réteg működik. Ráadásul az UDP használata komolyabb CPU-igényeket is hoz, mely további nyomás alá helyezi a szervereket. Ugyanakkor CDN használatával ez a probléma áthidalható:

Hogyan alkalmazhatod a legegyszerűbben HTTP/3-at?

A legegyszerűbb módja a HTTP/3 beállításának CDN-en keresztül történik. Az olyan nagy szolgáltatók, mint például a Cloudflare, a Google Cloud vagy a Fastly már támogatják a protokollt. A W3Techs szerint a top 10 millió weboldal 22 százaléka például a Cloudflare-t használja, ahol már engedélyezhető a HTTP/3 az irányítópulton.

Persze, amennyiben a CDN-en keresztüli használat a Te weboldaladnál nem lehetséges, akkor valószínűleg szerverfejlesztésre lesz szükséged. Ezzel kapcsolatban nem árt tudni, hogy egyelőre nem minden szoftver támogatja egyelőre a HTTP/3-at. Például a szerverek kb. harmada használja az Apache-t, ami még nem támogatja, ahogy szintén gond lesz a Node.Js esetében is.

Hogyan állapítsd meg, hogy egy weboldal támogatja-e a HTTP/3-at?

Ha bizonytalan vagy abban, hogy egy weboldal támogatja-e a HTTP/3-at, akkor a legegyszerűbb a HTTP/3 Check nevű eszközzel megvizsgálni.

De a Firefox és a Chrome is megjelenít a protokollt minden kérés esetén a fejlesztői eszközöknél. A mező ugyan alapértelmezetten nem jelenik meg a “Hálózat” fül alatt, azonban a táblázatnál jobb gombbal kattintva kiválaszthatod a protokoll megjelenítését is külön oszlopban. A HTTP/3 lekéréseket a h3 fogja jelezni a táblázatban.

Címkék: , ,

A Webshark.hu a hozzászólásoknál előzetes moderálást alkalmaz. Moderálási szabályaink itt olvashatók.

Hozzászólás jelenleg nem lehetséges.

Széchenyi 2020