Proč se stejná webová stránka při druhé návštěvě načte za zlomek času oproti prvnímu otevření? Prohlížeč si ji obvykle nestáhne celou znovu. Část souborů už má uloženou ve své cache, případně je získá z mezilehlého serveru mnohem blíž, než je původní webový server.
Cache, česky mezipaměť, funguje jako dočasné úložiště často používaných dat. Webová stránka se skládá z dokumentu HTML, stylů CSS, JavaScriptu, obrázků, písem a dalších souborů. Při prvním načtení putují tyto soubory přes internet z takzvaného originálního serveru až do zařízení návštěvníka. Cache si jejich kopie ponechá, aby při další žádosti nemusel celý proces probíhat znovu.
Je to podobné jako s knihou na pracovním stole. Když ji potřebujete jednou za měsíc, můžete pokaždé dojít do knihovny. Pokud do ní ale nahlížíte několikrát denně, necháte si ji po ruce. Cache dělá totéž s daty, jen mnohem rychleji a podle pravidel nastavených webem, prohlížečem nebo sítí.
Tři místa, kde se web může uložit
Nejblíž uživateli je cache v prohlížeči. Chrome, Firefox, Safari i další prohlížeče si mohou ponechat obrázky, styly nebo skripty z navštívených stránek. Při opakovaném otevření pak není nutné všechny soubory znovu stahovat. Prohlížeč si zároveň hlídá, jak dlouho je uložená kopie platná.
Druhou vrstvu představují sdílené proxy cache. Ty se nacházejí mezi návštěvníkem a původním serverem a mohou obsloužit více lidí najednou. Pokud už stejný soubor požadoval někdo před vámi, proxy ho může doručit bez dalšího spojení s originálním webem.
Velkou roli hraje CDN, tedy síť distribuovaných serverů rozmístěných v různých částech světa. CDN ukládá kopie obsahu na místech, která jsou geograficky blíž návštěvníkům. Cloudflare například uvádí více než 335 CDN lokalit a datacenter. Uživatel z Brna tak nemusí dostávat obrázek ze serveru na druhém konci světa, pokud existuje jeho kopie v bližší lokalitě.
Tato vzdálenost není jen geografická zajímavost. Každý požadavek musí projít sítí, navázat spojení a překonat případné vytížení jednotlivých uzlů. Když se odpověď vrátí z blízkého cache serveru, zkrátí se čekání a originální server dostane méně práce. U statických webů bývá běžný poměr zásahů cache mezi 95 a 99 procenty. Jen malá část požadavků, označovaná jako cache miss, pak putuje až na původní server.
Rozhodnutí, jak dlouho může cache kopii používat, určují především HTTP hlavičky. Nejdůležitější z nich je Cache-Control. Hodnota `max-age=604800` znamená, že odpověď může být považována za platnou 604 800 sekund, tedy sedm dní. Během této doby může cache soubor doručit bez ověřování u originálního serveru.
Dlouhá platnost se hodí u souborů, které se mění jen zřídka, například u obrázků nebo verzovaných skriptů. U obsahu, který se aktualizuje často, by však mohla způsobit problém: návštěvník by ještě několik dní viděl starou verzi. Proto weby obvykle používají různá pravidla pro různé typy souborů. Logo může zůstat v cache dlouho, zatímco stránka s osobním účtem se musí ověřovat častěji.
Co znamená cache hit, miss a odpověď 304
Když cache najde platnou kopii požadovaného souboru, jde o cache hit. Odpověď se odešle přímo z úložiště a není potřeba znovu generovat stránku ani přenášet data z originálního serveru. Cache miss nastane tehdy, když kopie chybí, její platnost vypršela nebo pravidla ukládání nedovolují její použití. Požadavek pak pokračuje k původnímu serveru, který dodá novou odpověď.
Ani vypršení platnosti ale automaticky neznamená, že se přenese celý soubor znovu. Prohlížeč nebo proxy může server požádat o ověření kopie pomocí identifikátoru ETag. Server porovná, zda se označení jeho aktuální verze shoduje s označením uloženým u klienta. Pokud ano, odpoví stavem `304 Not Modified`, tentokrát bez těla odpovědi. Soubor se tedy nemusí znovu přenášet v plné velikosti.
U velkého obrázku nebo rozsáhlého skriptu může být rozdíl znatelný. Místo opětovného stahování celého souboru se přenese jen krátká kontrolní komunikace. Prohlížeč pak použije kopii, kterou už má uloženou.
Při ladění výkonu webu se hodí sledovat také hlavičku `Age`. Udává stáří objektu uloženého v proxy cache v sekundách. Hodnota 0 obvykle znamená, že odpověď přišla z původního serveru nebo byla právě vložena do cache. Vyšší číslo naznačuje, že proxy používá kopii, která už nějakou dobu čeká na dalšího návštěvníka.
Cache však není bezpodmínečně vhodná pro všechno. Osobní údaje, obsah nákupního košíku, výsledky po přihlášení nebo stránky vytvořené podle konkrétního uživatele se musí obsluhovat opatrně. Špatné nastavení by mohlo způsobit, že jeden návštěvník obdrží data určená jinému. U dynamického obsahu proto server často zakáže sdílené ukládání, i když prohlížeč může některé bezpečné části stále využít.
Podobně zrádné je nasazení nové verze souboru pod stejným názvem. Pokud se `app.js` uloží do cache na několik dní a vývojář jeho obsah změní bez dalšího kroku, část návštěvníků může dál dostávat starý skript. Běžným řešením je změna názvu nebo přidání verze do adresy souboru, například pomocí jedinečného identifikátoru. Cache pak nový soubor pozná jako odlišný a stáhne ho.
HTML se často cacheuje jinak než obrázky, styly a skripty. Podle dokumentace Cloudflare z 7. května 2026 se mnoho typů HTML ve výchozím nastavení neukládá a vyžaduje vlastní cache pravidla. Dává to smysl: HTML častěji obsahuje aktuální údaje, personalizaci nebo informace, které se mění během dne. Automatické ukládání každé stránky by mohlo zrychlit web, ale zároveň zobrazit zastaralý či cizí obsah.
Správně nastavená cache proto není jen tlačítko pro rychlejší načítání. Je to dohoda mezi serverem, sítí a prohlížečem o tom, co lze bezpečně použít znovu, jak dlouho a kdy je nutné požádat o čerstvou kopii. Když tato pravidla fungují, návštěvník je většinou vůbec nevnímá. Stránka se jednoduše objeví dřív, než stihne sáhnout po tlačítku obnovení.















