Dajbych.net


Internet Explorer začíná podporovat HTTP/2

, 3 minuty čtení

In­ter­net Ex­plorer 11 ve Win­dows 10 Tech­ni­cal Pre­view pod­poruje pro­tokol HTTP 2.0, nyní nazý­vaný HTTP/2. Ne­jedná se však o ně­jaký plytký ter­mín, jako dříve tak oblíbený Web 2.0, kteří ob­chod­níci použí­vali, když chtěli vyjádřit „Mys­líme si, že umíme psát weby lépe, než vy.“ Při­nese rych­le­jší načítání stránek a nové in­for­mace se na nich bu­dou zo­bra­zo­vat hned, jak bu­dou k dis­pozici. A pokud se to výrobcům proh­lížečů po­daří prosa­dit, vešk­erý provoz bude také zašifrovaný.

HTTP

Rychlost

Pro­tože serveru může chvíli tr­vat, než požadovaná data proh­lížečem vydá, otevírají proh­lížeče až 4 TCP spo­jení, aby načítání stránek urychlily. To však na druhou stranu více zatěžuje síť, pro­tože je otevřeno více spo­jení, než je ve skutečnosti potřeba. HTTP/2 proto pod­poruje posílání něko­lika souborů na­jed­nou přes jedno spo­jení.

Další zlepšení se týká kom­p­rese. Jed­nak se kom­primují i hlav­ičky, ale také by měla přibýt pod­pora pro nové al­goritmy jako PeerDist nebo SDCH.

Neméně za­jí­mavá je snaha zmír­nit prob­lém zvaný Head-of-line block­ing. TPC nám posky­tuje ab­s­trak­tní spoleh­livé spo­jení přes ne­spoleh­livou elek­tro­mag­net­ickou síť. Každý doku­ment je rozsekán na pakety, které jsou poslány sítí zvlášť. Pokud směrovač posílá pakety ze dvou vs­tup­ních kanálů do jed­noho výs­tup­ního, může se stát, že se do výs­tup­ního všechny neve­j­dou. Ten efekt určitě všichni známe z dál­nice D1. Zatímco auto na sil­nici prostě zas­taví a čeká, elek­trické napětí ve vodiči buď je, nebo není. Je to jako kdyby každé mo­torové vozidlo, které by na dál­nici úplně zas­tav­ilo, prostě na­jed­nou zmizelo. Tím by se za­jis­til plynulý provoz, avšak řidič by se se svým zmizelým autem oc­itl v garáži, ze které původně vy­jel, a musel by celou cestu pod­ni­knout znovu. Tak ně­jak to fun­guje v pro­tokolu TCP. Pro­tože TPC za­jišťuje také to, že všechny pakety do­j­dou ve ste­jném pořadí, zpožděný paket zabraňuje ve čtení všech násle­du­jících paketů.

Pro­tokol HTTP má vlast­nost zvanou mul­ti­ple re­quests, která do­voluje klien­tovi poslat něko­lik žá­dostí v jed­nom TCP spo­jení a očeká­vat více od­povědí. To šetří počet spo­jení, avšak současně zna­mená, že druhá od­pověď nemůže před­stihnout první, i když do cíle do­razí před ní.

Bezpečnost

Je­likož HTTP/2 vy­chází ze SPDY, povinně se používá šifrování TLS 1.2. To však není úplně dostatečné, pro­tože zahr­nuje i šifry RC4 a Triple DES v CBC režimu, které ne­j­sou po­važ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 na­padne, že k tomu máme vlastně Web­Sockets. Máte pravdu, máme. HTTP/2 je totiž spo­jení SPDY a Web­Sockets. Ze SPDY si bere mul­ti­plex­ing a z Web­Sockets trans­portní vrstvu. Server tedy může poslat zprávu klien­tovi podobně, jako to dělá dnes přes Web­Sockets. Ale jak to tedy provedu a za­jistím přitom zpět­nou kom­pat­i­bil­itu? Od­pověď je prostá – Sig­nalR.