Web používáme každý den. Napíšeme adresu, klikneme na odkaz a během okamžiku se objeví stránka. Když nefunguje, dozvíme se, že je „problém se serverem“, „nefunguje DNS“ nebo že web vrací „chybu 500“.
Jenže co přesně je server? Co je doména? K čemu máme WWW? A je vůbec web totéž co internet?
Pojďme si projít cestu od napsání adresy do prohlížeče až po okamžik, kdy před sebou vidíte hotovou webovou stránku. Bez zbytečného technického strašení, ale zároveň bez rezignace na skutečné pojmy.
Internet a web nejsou totéž
Začněme rozdílem, který se často přehlíží.
Internet je celosvětová síť propojených počítačových sítí. Je to infrastruktura, po které mohou cestovat data.
World Wide Web (WWW) je jedna ze služeb, které internet využívají. Web tvoří stránky a další zdroje propojené odkazy a dostupné pomocí webových technologií.
Internet tedy existoval dříve než web. World Wide Web navrhl Tim Berners-Lee v CERNu v roce 1989. Do konce roku 1990 už existoval první webový server, prohlížeč a základní technologie webu.
Velmi zjednodušeně:
Internet je silniční síť. Web je jedna z věcí, které se po těchto silnicích přepravují.
Po internetu totiž necestují jen webové stránky. Využívá ho například také e-mail a řada dalších služeb.
Co tedy znamená WWW?
WWW je zkratka World Wide Web.
Když vidíte adresu:
www.example.cz
je www ve skutečnosti subdoména.
Kdysi bylo velmi běžné označovat webový server právě pomocí www. Dnes už to technicky není nutné. Web může fungovat jako:
www.example.cz
stejně jako:
example.cz
A klidně můžeme mít:
eshop.example.cz
blog.example.cz
rezervace.example.cz
WWW tedy není nějaká magická součást každé internetové adresy. Je to jen tradiční označení používané pro web.
Co je doména?
Lidé si nechtějí pamatovat něco jako:
192.0.2.172
Mnohem příjemnější je zapamatovat si:
example.cz
Proto používáme doménová jména.
Doména je lidsky zapamatovatelný název, pomocí kterého se můžeme dostat ke konkrétní internetové službě.
Počítače ale nakonec potřebují zjistit, kam mají požadavek skutečně poslat. A právě tady přichází na scénu další zkratka.
DNS: telefonní seznam internetu
DNS znamená Domain Name System.
Jeho úkolem je mimo jiné převést doménové jméno na IP adresu.
Když do prohlížeče zadáte například:
www.example.cz
počítač potřebuje zjistit, na jaký server se má obrátit.
Zeptá se tedy systému DNS.
Princip můžeme přirovnat ke kontaktům v telefonu. Vy hledáte „Petr Novák“, telefon ale nakonec potřebuje konkrétní telefonní číslo.
U webu zadáte doménu a DNS pomůže zjistit odpovídající IP adresu serveru.
A co je server?
Slovo server zní podstatně tajemněji, než ve skutečnosti je.
Server je v principu počítač, který poskytuje nějakou službu jiným počítačům.
U webového serveru je tou službou poskytování webového obsahu.
Na serveru mohou být například:
- soubory webu,
- obrázky,
- databáze,
- PHP aplikace,
- WordPress,
- e-shop,
- uživatelské účty.
Server přitom nemusí vypadat jako váš počítač pod stolem. Typicky jde o zařízení v datacentru, které je navržené tak, aby mohlo být dostupné nepřetržitě.
Když si kupujete webhosting, nekupujete si internet. Pronajímáte si prostor a služby serveru, na kterém může váš web fungovat.
Co se tedy stane po stisknutí Enteru?
Teď můžeme jednotlivé části spojit.
Do prohlížeče napíšete například:
https://www.example.cz
a stisknete Enter.
V několika zjednodušených krocích se stane následující:
1. Prohlížeč potřebuje zjistit, kde web leží.
Pomocí DNS zjistí IP adresu serveru.
2. Prohlížeč kontaktuje server.
Pošle mu HTTP request, tedy požadavek. V podstatě říká:
„Prosím, pošli mi tuto stránku.“
3. Server požadavek zpracuje.
U jednoduchého webu může rovnou poslat příslušný soubor. U systému, jako je WordPress, je situace složitější. Server může spustit PHP, WordPress načte potřebná data z databáze a výsledkem je obsah připravený pro prohlížeč.
4. Server odešle odpověď.
Tomu říkáme HTTP response.
Součástí odpovědi je také stavový kód. Známé jsou například:
200 OK – všechno proběhlo správně.
301 Moved Permanently – obsah byl trvale přesunut jinam.
403 Forbidden – server požadavek odmítá.
404 Not Found – požadovaný obsah nebyl nalezen.
500 Internal Server Error – při zpracování požadavku nastal problém na serveru.
5. Prohlížeč dostane data a sestaví stránku.
A teprve nyní vzniká to, co skutečně vidíte na monitoru.
Tento základní princip komunikace klienta, DNS a serveru odpovídá tomu, jak fungování webu popisuje také dokumentace MDN.
HTML, CSS a JavaScript: z čeho se stránka skládá?
Prohlížeč potřebuje vědět, co má zobrazit a jak.
Tady se dostáváme ke třem základním technologiím webového frontendu.
HTML (HyperText Markup Language) popisuje obsah a strukturu stránky.
Říká například: tohle je nadpis, tohle odstavec, tady je obrázek a tady odkaz.
CSS (Cascading Style Sheets) řeší vzhled.
Určuje barvy, velikosti, rozložení, mezery, fonty a spoustu dalších vizuálních vlastností.
JavaScript přidává chování a interaktivitu.
Může například otevřít menu, načíst další obsah bez obnovení celé stránky, zkontrolovat formulář nebo vytvořit složitou webovou aplikaci.
Přirovnání není dokonalé, ale pro základní představu funguje:
HTML je konstrukce domu, CSS je jeho vzhled a JavaScript jsou věci, které se v něm mohou hýbat a reagovat.
A kde je v tom WordPress?
WordPress je aplikace běžící na serveru.
Když otevřete web vytvořený ve WordPressu, neznamená to, že máte WordPress ve svém počítači. WordPress pracuje na serveru a pomáhá připravit výsledek, který následně dostane váš prohlížeč.
Typická instalace WordPressu používá také databázi.
V ní mohou být uloženy články, stránky, nastavení webu, informace o uživatelích nebo například data e-shopu.
Když požádáte o konkrétní stránku, WordPress může potřebná data získat z databáze, zpracovat je pomocí PHP a vytvořit výsledné HTML.
Proto také může nastat situace, kdy server funguje, doména funguje a internet funguje – ale web přesto nefunguje.
Problém totiž může být až v samotné aplikaci.
Co je HTTPS a proč je před adresou?
Všimněte si ještě začátku adresy:
https://
HTTPS je zabezpečená varianta protokolu HTTP, který se používá pro komunikaci mezi prohlížečem a webovým serverem.
Důležitou součástí je šifrování komunikace.
Když například odesíláte přes web formulář, nechcete, aby jeho obsah mohl někdo cestou jednoduše přečíst.
HTTPS pomáhá zabezpečit komunikaci mezi vaším prohlížečem a serverem.
A co je URL?
Když už používáme terminologii správně, neměli bychom vynechat ani URL – Uniform Resource Locator.
URL určuje adresu konkrétního zdroje.
Například:
https://www.example.cz/blog/jak-funguje-web
můžeme rozebrat přibližně takto:
https:// – protokol
www – subdoména
example.cz – doména
/blog/jak-funguje-web – cesta ke konkrétnímu obsahu
Najednou tedy něco, co používáme několikrát denně, začíná dávat technický smysl.
Web není jedna věc
A to je možná nejdůležitější poznatek.
Když někdo řekne „nejde web“, může to znamenat desítky různých problémů.
Nemusí fungovat internetové připojení.
Může být špatně DNS.
Server může být nedostupný.
Může být problém s HTTPS certifikátem.
Webový server může vracet chybu.
PHP může skončit chybou.
WordPress může mít problém.
Databáze nemusí odpovídat.
Nebo server všechno odešle správně, ale JavaScript v prohlížeči následně udělá něco, co nemá.
Proto otázka „Proč nejde web?“ trochu připomíná otázku „Proč nejede auto?“.
Správná odpověď začíná další otázkou:
Která jeho část nefunguje?
Celý web v jedné větě
Kdybychom měli celý princip brutálně zjednodušit, můžeme říct:
Napíšete URL → DNS najde server → prohlížeč mu pošle HTTP požadavek → server připraví odpověď → prohlížeč dostane HTML, CSS, JavaScript a další soubory → z nich sestaví stránku, kterou vidíte.
Ve skutečnosti se toho samozřejmě děje mnohem více.
Ale od této chvíle už pojmy doména, DNS, IP adresa, server, HTTP, HTML nebo WWW nejsou náhodná IT zaklínadla.
Jsou to jednotlivé součásti jednoho systému, který používáme pokaždé, když klikneme na odkaz.