Internet Explorer začíná podporovat HTTP/2

Internet Explorer 11 ve Windows 10 Technical Preview podporuje protokol HTTP 2.0, nyní nazývaný HTTP/2. Nejedná se však o nějaký plytký termín, jako dříve tak oblíbený Web 2.0, kteří obchodníci používali, když chtěli vyjádřit „Myslíme si, že umíme psát weby lépe, než vy.“ Přinese rychlejší načítání stránek a nové informace se na nich budou zobrazovat hned, jak budou k dispozici. A pokud se to výrobcům prohlížečů podaří prosadit, veškerý provoz bude také zašifrovaný.

clip_image002

Rychlost

Protože serveru může chvíli trvat, než požadovaná data prohlížečem vydá, otevírají prohlížeče až 4 TCP spojení, aby načítání stránek urychlily. To však na druhou stranu více zatěžuje síť, protože je otevřeno více spojení, než je ve skutečnosti potřeba. HTTP/2 proto podporuje posílání několika souborů najednou přes jedno spojení.

Další zlepšení se týká komprese. Jednak se komprimují i hlavičky, ale také by měla přibýt podpora pro nové algoritmy jako PeerDist nebo SDCH.

Neméně zajímavá je snaha zmírnit problém zvaný Head-of-line blocking. TPC nám poskytuje abstraktní spolehlivé spojení přes nespolehlivou elektromagnetickou síť. Každý dokument je rozsekán na pakety, které jsou poslány sítí zvlášť. Pokud směrovač posílá pakety ze dvou vstupních kanálů do jednoho výstupního, může se stát, že se do výstupního všechny nevejdou. Ten efekt určitě všichni známe z dálnice D1. Zatímco auto na silnici prostě zastaví a čeká, elektrické napětí ve vodiči buď je, nebo není. Je to jako kdyby každé motorové vozidlo, které by na dálnici úplně zastavilo, prostě najednou zmizelo. Tím by se zajistil plynulý provoz, avšak řidič by se se svým zmizelým autem ocitl v garáži, ze které původně vyjel, a musel by celou cestu podniknout znovu. Tak nějak to funguje v protokolu TCP. Protože TPC zajišťuje také to, že všechny pakety dojdou ve stejném pořadí, zpožděný paket zabraňuje ve čtení všech následujících paketů.

Protokol HTTP má vlastnost zvanou multiple requests, která dovoluje klientovi poslat několik žádostí v jednom TCP spojení a očekávat více odpovědí. To šetří počet spojení, avšak současně znamená, že druhá odpověď nemůže předstihnout první, i když do cíle dorazí před ní.

Bezpečnost

Jelikož HTTP/2 vychází ze SPDY, povinně se používá šifrování TLS 1.2. To však není úplně dostatečné, protože zahrnuje i šifry RC4 a Triple DES v CBC režimu, které nejsou považovány za bezpečné. Brzy to snad vyřeší TLS 1.3, které už slabé šifrování zakazuje.

Obousměrnost

Možná vás v tuto chvíli napadne, že k tomu máme vlastně WebSockets. Máte pravdu, máme. HTTP/2 je totiž spojení SPDY a WebSockets. Ze SPDY si bere multiplexing a z WebSockets transportní vrstvu. Server tedy může poslat zprávu klientovi podobně, jako to dělá dnes přes WebSockets. Ale jak to tedy provedu a zajistím přitom zpětnou kompatibilitu? Odpověď je prostá – SignalR.

- Václav Dajbych, IE userAgent