Internet: HTTP a HTML
Jmenuji se Jasmine a jsem vedoucím oddělení programování v konstrukčním týmu společnosti
XBOX One. Jeden z našich největších podniků se nazývá XBOX Live. Je to online služba, která propojuje
hráče z celého světa, aby to tak mohlo být, používáme Internet. Není to
snadný úkol a spousta věcí se odehrává v zákulisí. Internet
zcela mění způsob, jak se lidé stýkají a komunikují. Ale jak to funguje? Jak
počítače na celém světě komunikují jeden s druhým? Podívejme se na prohlížení webu.
Nejprve otevíráte prohlížeč. To je aplikace, kterou používáte k prohlížení webových stránek. Dále
napíšete webovou adresu, neboli URL, což znamená „Uniform Resource Locator“ (Uniformní lokátor prostředků), webové stránky,
kterou chcete navštívit, jako například tumblr.com. Ahoj. Já jsem David Karp, zakladatel Tumblr, a dnes jsme tady
proto, abychom si promluvili o tom, jak fungují webové prohlížeče, které každodenně používáme. Už jste se
zřejmě někdy zamysleli nad tím, co se vlastně odehrává, když zadáte adresu do řádku webového prohlížeče a
stisknete enter. A opravdu, je to tak ztřeštěné, jak si jen dovedete představit. Takže v tom okamžiku se Váš počítač
začne domlouvat s jiným počítačem, který se nazývá server a který se obyčejně nalézá tisíce mil daleko.
a během několika málo milisekund Váš počítač požádá onen server o webovou stránku a ten server
zahájí s Vaším počítačem rozhovor v jazyce zvaném HTTP. HTTP znamená „HyperText Transfer Protocol“ („Protokol
pro přenos hypertextu“). Můžete si to představit poněkud jako jazyk používaný jedním počítačem
k tomu, aby požádal jiný počítač o nějaký dokument. A je to opravdu celkem přímočaré.
Kdybyste zachytili komunikaci probíhající mezi Vaším počítačem a nějakým webovým serverem na
Internetu, tak ta se skládá z požadavků, kterým se říká požadavky „GET“. Jsou to opravdu velmi
jednoduše řečeno jen slovo GET a název dokumentu, který požadujete. Takže když se pokusíte přihlásit se
na Tumblr a načíst naši přihlašovací stránku, děláte vlastně to, že posíláte serveru Tumblr požadavek GET,
který říká GET /login. A tím je serveru Tumblr řečeno, že chcete veškerý kód HTML přihlašovací
stránky Tumblr. HTML znamená Hyper Text Markup Language“ („Jazyk pro záznam hypertextu“) a můžete
si jej představit jako jazyk, který používáte k tomu, abyste webovému prohlížeči sdělili, jak má nějaká
stránka vypadat. Jestliže uvážíme něco takového, jako je Wikipedie, což je prostě jen velký dokument
a HTML je jazyk, který se používá k tomu, aby titulek byl velký a tučně psaný, aby byl použit správný typ
písma, aby některý text odkazoval na některé jiné stránky, aby některý text byl tučně psaný, jiný
psaný kurzívou, aby byl obrázek umístěn uprostřed stránky nebo naopak zarovnaný na pravou nebo
na levou stranu. Text webové stránky je zadáván přímo v HTML,
ale ostatní části, jako například obrázky nebo videa jsou ve svých samostatných souborech se svými
vlastními URL, o které je třeba požádat. Prohlížeč odesílá samostatné požadavky HTTP pro jednotlivé
soubory, které potom zobrazuje tak, jak přicházejí. Jestliže má nějaká webová stránka spoustu různých
obrázků, každý z nich způsobí samostatný požadavek HTTP a stránka se pak načítá pomaleji. Přitom někdy, když
prohlížíte web, nejen, že vyžadujete stránky s požadavky GET. Někdy odesíláte informace, jako například, když
vyplníte formulář nebo napíšete dotaz do vyhledávače. Váš prohlížeč ty informace pošle ve formátu prostého
textu webovému serveru formou požadavku HTTP POST. Řekněme, že se právě přihlašujete na Tumblr. Takže první,
co musíte udělat, je vydat požadavek POST, tj. POST na přihlašovací stránku Tumblr, ke kterému jsou přiloženy
určité údaje. Je tam Vaše e-mailová adresa, je tam Vaše heslo. To pak jde na server Tumblr.
Server Tumblr si uvědomí, že je to v pořádku, že jste David. Pošle zpátky Vašemu prohlížeči
webovou stránku, která říká „Úspěch! Přihlášen jako David.“ Ale společně s touto webovou stránkou
pošle také malý kousek neviditelných dat v podobě souboru cookie, který Váš prohlížeč vidí a ví, jak jej uložit.
A to je opravdu důležité, protože je to jediný způsob, jak si může nějaká webová stránka zapamatovat,
kdo jste. Data v souboru cookie opravdu jsou pro Tumblr jen identifikační kartou. Je to číslo, které identifikuje
například, že Vy jste David. A Váš webový prohlížeč si to číslo podržuje, a když Tumblr opět obnovíte, pak
při další příležitosti, kdy jdete na Tumblr.com, Váš webový prohlížeč ví, že má to identifikační číslo
automaticky připojit k požadavku, který zasílá serverům Tumblr. Takže server Tumblr teď
vidí požadavek přicházející z Vašeho prohlížeče, vidí to identifikační číslo a ví:
„Dobře, tohle je David.“ A uvědomme si, že Internet je zcela volně přístupný. Všechna jeho spojení jsou
sdílená a informace jsou zasílány jako prostý text. To umožňuje, aby hackeři odposlouchávali
jakékoli informace, které budete po internetu posílat. Avšak zabezpečené webové stránky tomu brání tím,
že požádají váš webový prohlížeč, aby komunikoval na zabezpečeném kanálu pomocí něčeho, čemu říkáme SSL
(„Secure Sockets Layer“ - „Vrstva zabezpečených zásuvek“) a jejím následníkem je TLS („Transport Layer Security“ -
- „Zabezpečení přepravní vrstvy“). SSL a TLS si můžete představit jako bezpečnostní vrstvu namotanou na Vaší
komunikaci na ochranu proti odposlechu a neoprávněné manipulaci. SSL a TLS jsou aktivní, když na adresním
řádku svého prohlížeče vedle slova HTTPS vidíte vyobrazeny malé zámky. Protokoly HTTPS
zajišťují, aby Vaše požadavky HTTP byly zabezpečené a chráněné. Když nějaká webová stránka požádá Váš
prohlížeč, aby zajistil zabezpečené spojení, nejprve poskytne digitální certifikát. Což je něco asi takového,
jako oficiální identifikační karta, kterou se web prokazuje, že je tím, kým je. Digitální certifikáty
jsou vydávány certifikačními úřady, což jsou důvěryhodné subjekty, které ověřují totožnost
webů a vydávají jim certifikáty. Stejně jako vláda může vydávat občanské průkazy nebo pasy.
Takže když se nějaký web pokusí založit zabezpečené připojení, aniž by měl řádně vydaný
digitální certifikát zabezpečení, Váš prohlížeč Vás varuje. To jsou základy prohlížení webu!
Té části Internetu, kterou vídáme každý den. Abychom to shrnuli, HTTP a DNS se starají o odesílání
a příjem HTML, souborů médií, a vůbec čehokoli, co je na webu. Tím pod kapotou, co tohle všechno umožňuje,
jsou sítě TCP/IP a sítě routerů, které informace rozkládají a přenášejí po malých balíčcích. Tyto
balíčky samy se skládají z dvojkových posloupností jedniček a nul, které jsou fyzicky zasílány
elektrickými vodiči, optickovláknovými kabely a bezdrátovými sítěmi.
Naštěstí je tomu tak, že když se naučíte, jak funguje jedna vrstva internetu, můžete se na ni spolehnout,
aniž byste si museli pamatovat všechny údaje. A můžeme se spolehnout, že všechny tyto vrstvy budou
společně fungovat tak, aby postupně přenášely informace ve správné míře a spolehlivě.