Internet | Web

Blíží se HTTP/3: Web bude rychlejší a bude používat úplně jinou technologii

  • Příští verze klíčového protokolu HTTP nebude postavená na TCP
  • Namísto toho použije „vylepšené UDP“
  • HTTP/3 bude postavené na QUIC

Až si jednoho dne při surfování na webu všimnete, že je něco špatně – že je ten internet po letech slibů konečně rychlý, možná to nebude tím, že vám operátor nečekaně zrychlil přípojku. A ani AdBlockem. Možná to bude nový HTTP/3.

Cože? Co to je HTTP/3? Inu, třetí a zatím čistě pracovní generace internetového protokolu, pomocí kterého webové servery servírují prohlížečům jednotlivé webové stránky. A nepsali jste náhodou nedávno cosi o HTTP/2? Psali, v roce 2015 totiž standardizační organizace IETF po dlouhých 16 letech aktualizovala jeden z nejdůležitějších protokolů současnosti. Právě tehdy se zrodil HTTP/2.

1be64910-7e1c-4c13-9a33-61795164853c
Stránky s hromadou objektů se mohou díky HTTP/2 načítat mnohem rychleji. Obrázky výše se ve skutečnosti skládají z hromady menších dlaždic, proto se snímek vpravo díky HTTP/2 zobrazil mnohem rychleji.

Dnes jej podporují prakticky všechny prohlížeče, a tak jej mnohdy používáte, aniž byste to tušili. Z uživatelského hlediska se po formální stránce pochopitelně nic nezměnilo, mnohé stránky se ale mohou načítat svižněji – zejména pokud se skládají z ohromného množství objektů.

Jmenuji se QUIC a nahradím HTTP

Jenže zatímco IETF tehdy oznámila standardizaci HTTP/2, inženýři z Googlu už zvesela testovali svůj vlastní QUIC. Jestli měla druhá generace webového protokolu přenést internetové servery do 21. století, pak jde QUIC ještě mnohem dál a boří a reformuje i jeho samotné základy.

5fc222b9-4478-433a-ab8c-fff2c28fd0ff
I něco tak abstraktního jako hypertextový protokol má své logo

QUIC brzy v komunitě našel zalíbení, experti jej začali rozvíjet po vlastní ose a před pár dny je napadlo: „Hele, co kdybychom mu začali namísto QUIC říkat prostě HTTP/3?“

Ahoj mami, píšu ti dopis

Ale pěkně popořadě. Představte si, že na čtvrtku papíru napíšete dopis mamince a rozstříháte jej na desítky drobných kousků. Na každém bude třeba jedno slovo. Když byste nyní chtěli dopis odeslat, stejně jako webový server servíruje HTML stránku prohlížeči, prostě zavoláte kamarádům a vytvoříte živý řetěz od vás až k mamince – nebo i více řetězů naráz.

Poté papírek po papírku předáte partě a počkáte, až jeden po druhém doputují k mamince, která je zase všechny slepí dohromady a přečte. Stejně jako váš počítač a prohlížeč sestaví bajty dohromady a vykreslí pestrobarevnou stránku Živě.cz.

Ve skutečnosti je to ale mnohem složitější, některý z papírků se totiž může po cestě ztratit a mamince by chyběl. Proto při každém novém obdrženém papírku vezme maminka list jiného papíru, napíše na něj, že útržek dorazil, načež list předá živému řetězu a ten jej pošle zpět. Pokud vám toto potvrzení nedorazí v časovém limitu, napíšete slovo na nový útržek papíru a znovu jej odešlete.

Suma sumárum, zdánlivě jednoduchý transport dopisu docela brutálním způsobem zatíží živý řetěz našich kamarádů, který, jak už jistě všichni pochopili, představuje internet, ve kterém podobné útržky – rámy, pakety a segmenty poletují sem a tam.

Na stranu druhou, zaručeně víme, že mamince vše dorazilo, a tak se jedná o spolehlivé doručení informace. Právě jsme si ve vší stručnosti popsali protokol TCP, nad kterým je postavený i HyperText Transport Protocol, tedy HTTP.

Ahoj mami, posílám ti dopis, ale tentokrát mi nepotvrzuj každý útržek

TCP se používá všude tam, kde je třeba zajistit, aby nechyběl byť jen jeden jediný bit informace. Platí to jak o webové stránce, tak třeba o té legální kopii Photoshopu, kterou si mnozí z vás v minulosti stáhli z internetu. Pak tu jsou však i přenosy, kde by už ztráta nějakého toho bitu nevadila, a tak by se hodil nějaký jiný a méně náročný protokol, který integritu dat nebude kontrolovat tak obezřetně, protože to prostě zdržuje.

379fcc38-4c5c-449b-8564-42780dd17bcf
Pokud je TCP jako doporučený dopis, pak je UDP pohled z Chrovatska, u kterého můžete jen doufat, že opravdu dorazí

Typickým příkladem jsou multimediální streamy, u kterých se nic nestane, když se náhodou po cestě nějaký ten pixel obrazu ztratí – přehrávač u nás v počítači s tím počítá a my si všimneme v obrazu přinejhorším nějakého artefaktu, který beztak s příchodem dalšího keyframu za pár okamžiků zmizí.

A přesně tak funguje (tak trochu) protipól TCP jménem UDP. Kdybychom jej použili k odeslání našeho dopisu, maminka nám žádná potvrzení posílat nebude a my budeme prostě doufat v to, že i když se nějaké papírky po cestě ztratí, pochopí, co ji chceme říci. Anebo ještě jednodušeji a s trochou nadsázky: UDP je něco jako Česká pošta. Pakety do cíle buď dorazí, nebo taky ne.

Co kdybychom HTTP postavili právě nad UDP?

Tak, už známe kruciální rozdíl mezi TCP a UDP, čili se nabízí otázka: Hele, co kdybychom HTTP postavili namísto nad TCP právě nad UDP s tím, že do něj přidáme některé kontrolní mechanizmy integrity dat. Ve výsledku bychom tedy poslali webovou stránku ze serveru až do prohlížeče mnohem rychleji.

120cb85a-31a9-4bc7-a9c5-1d7691dd5846
Režie TCP spojení a QUIC (UDP), Díky tomu, že QUIC nedodržuje tak velkou přísnost kontroly doručení jako TCP, může být celý přenos svižnější.

Bingo! Kdyby vás něco takového napadlo před mnoha lety, možná by vás zaměstnali v Googlu, přesně tuto myšlenku totiž inženýři z Mountain View v roce 2012 přetavili v nový protokol, o kterém padla řeč už na začátku článku: QUIC, tedy Quick UDP Internet Connections.

335d9716-b82c-4b7d-956b-198cdf428070
Za ideálních podmínek může vypadat zrychlení oproti TCP jako na obrázku. Na vertikální ose jsou různé rychlosti připojení, na horizontální pak velikost odesílaných dat. Barva bloků představuje procentuální zrychlení QUIC oproti HTTP skrze TCP. Pokud se však podmínky zhorší, už to tak dobré být nemusí (Zdroj: Test organizace APNIC).

Google postupně zavedl podporu pro QUIC do Chromu a na své servery a brzy skrze něj začal servírovat většinu HTTP komunikace. Pokud jste tedy v posledních letech surfovali v Chromu a použili jste třeba vyhledávač Googlu, nebo koukli na nějaké to video na YouTube (tou dobou tam ostatně býval i náš nedělní Týden Živě), HTTP data se o patro níže přenášela namísto TCP právě skrze vylepšený UDP, tedy QUIC.

QUIC je dobrý, pojďme z něj udělat HTTP/3

Vzhledem k tomu, že jak vyhledávač, tak YouTube patří k těm nejnavštěvovanějším webům planety, jednalo se zároveň o obří betatest nové technologie, která dokáže načítaní stránek zrychlit až o několik procent a ještě lépe se dařilo videím na YouTube. I proto dala QUIC zelenou i expertní komunita z IETF a začala jej rozvíjet jako nový internetový protokol.

0d1e85fd-c62a-425e-ab82-9f4b639c0807889a13d1-d0cc-4d00-9648-17e64c6ea4ba
Srovnání počtu kroků jednoho jediného dotazu HTTPS skrze TCP a skrze úspornější QUIC (Zdroj: Cloudflare, který se připravuje na jeho podporu)

A jelikož je QUIC opravdu zcela nová koncepce, kterou nemá smysl zpětně vsadit do HTTP/2, nyní se komunita rozhodla, že QUIC bude HTTP/3 a tedy časem i standard napříč prohlížeči. Hned to však nebude.

Protokol je stále ve vývoji a nakonec záleží především na webmasterech, kdy aktualizují svoje servery. A jestli vůbec budou chtít, když stávající stav vlastně funguje. I když tedy mnohem více zatěžuje internet, počítače – prostě všechny prvky sítě.

V každém případě, World Wide Web bude jednou svižnější, to je už jisté.

Diskuze (60) Další článek: Šéfka YouTube varuje, že podmínky chystané legislativy EU ohledně autorských práv nelze splnit

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,