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