Dajbych.net


Internet Explorer začíná podporovat HTTP/2

, 4 minuty čtení

In­ter­net Ex­plo­rer 11 ve Win­dows 10 Tech­ni­cal Pre­view pod­po­ruje pro­to­kol HTTP 2.0, nyní na­zý­vaný HTTP/2. Ne­jedná se však o ně­jaký plytký ter­mín, jako dříve tak ob­líbený Web 2.0, kteří ob­chod­níci po­u­ží­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­lejší na­čítání strá­nek a nové in­for­mace se na nich bu­dou zob­ra­zo­vat hned, jak bu­dou k dis­po­zici. A po­kud se to výrob­cům pro­hlí­žečů po­daří pro­sa­dit, veš­kerý pro­voz bude také za­šif­ro­vaný.

Rychlost

Pro­tože ser­veru může chvíli tr­vat, než po­ža­do­vaná data pro­hlí­že­čem vydá, ote­vírají pro­hlí­žeče až 4 TCP spo­jení, aby na­čítání strá­nek urych­lily. To však na druhou stranu více za­tě­žuje síť, pro­tože je ote­vřeno více spo­jení, než je ve sku­teč­nosti po­třeba. HTTP/2 proto pod­po­ruje po­sílání ně­ko­lika sou­borů najed­nou přes jedno spo­jení.

Další zlep­šení se týká kom­prese. Jed­nak se kom­pri­mují i hla­vičky, ale také by měla při­být pod­pora pro nové al­go­ritmy jako Peer­Dist nebo SDCH.

Neméně za­jí­mavá je snaha zmír­nit problém zvaný Head-of-line bloc­king. TPC nám po­sky­tuje abs­traktní spo­leh­livé spo­jení přes ne­spo­leh­li­vou elek­tro­mag­ne­tic­kou síť. Každý do­ku­ment je roz­se­kán na pa­kety, které jsou po­slány sítí zvlášť. Po­kud smě­ro­vač po­sílá pa­kety ze dvou vstup­ních ka­nálů do jed­noho výstup­ního, může se stát, že se do výstup­ního všechny ne­ve­jdou. Ten efekt ur­čitě všichni známe z dál­nice D1. Zatímco auto na sil­nici prostě za­staví a čeká, elek­trické na­pětí ve vo­diči buď je, nebo není. Je to jako kdyby každé mo­to­rové vo­zi­dlo, které by na dál­nici úplně za­sta­vilo, prostě najed­nou zmi­zelo. Tím by se za­jis­til ply­nulý pro­voz, avšak ři­dič by se se svým zmi­zelým au­tem ocitl v ga­ráži, ze které pů­vodně vyjel, a mu­sel by ce­lou cestu pod­nik­nout znovu. Tak ně­jak to fun­guje v pro­to­kolu TCP. Pro­tože TPC za­jiš­ťuje také to, že všechny pa­kety do­jdou ve stej­ném po­řadí, zpož­děný pa­ket zabra­ňuje ve čtení všech ná­sle­dují­cích pa­ketů.

Pro­to­kol HTTP má vlast­nost zva­nou mul­tiple requests, která do­vo­luje kli­en­tovi po­slat ně­ko­lik žá­dostí v jed­nom TCP spo­jení a oče­ká­vat více od­po­vědí. To še­tří po­čet spo­jení, avšak sou­časně zna­mená, že druhá od­po­věď ne­může před­stihnout první, i když do cíle do­razí před ní.

Bezpečnost

Je­li­kož HTTP/2 vy­chází ze SPDY, po­vinně se po­u­žívá šif­ro­vání TLS 1.2. To však není úplně do­sta­tečné, pro­tože za­hr­nuje i šifry RC4 a Tri­ple DES v CBC re­žimu, které nejsou po­va­žo­vány za bez­pečné. Brzy to snad vyřeší TLS 1.3, které už slabé šif­ro­vání za­ka­zuje.

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­tiple­xing a z Web­Sockets trans­portní vrstvu. Ser­ver tedy může po­slat zprávu kli­en­tovi po­dobně, jako to dělá dnes přes Web­Sockets. Ale jak to tedy pro­vedu a za­jis­tím při­tom zpět­nou kom­pa­ti­bi­litu? Od­po­věď je prostá – Sig­nalR.