Keš (anglicky cache) je technický pojem, který označuje mezipaměť – prostor, kam se dočasně ukládají data, aby se mohly rychleji znovu použít. Toto řešení se používá v různých oblastech informačních technologií a jeho hlavním účelem je zlepšit výkonnost systémů, snížit zátěž na servery a zrychlit zpracování či zobrazení dat a zlepšit uživatelský zážitek (například uživatelům webových stránek, kteří používají k jejich zobrazení internetový prohlížeč se stránky zobrazí rychleji a uživatel na to potřebuje méně dat). Na druhé straně je třeba dbát na pravidelnou úrdržbu a čištění keše, aby nedocházelo k zobrazování zastaralých či neaktuálních dat.
Jak keš funguje?
Představte si keš jako druh „šuplíku“, do kterého si systém ukládá část obsahu, aby ho nemusel pokaždé hledat znovu. Například:
- Prohlížeč webových stránek – když si zobrazíte nějakou webovou stránku, prohlížeč si uloží určitá data (například obrázky nebo soubory CSS) do keše. Při příští návštěvě též stránky se tato data načítají z keše namísto toho, aby se znovu stahovala ze serveru.
- Procesory a operační systémy – keš se používá pro rychlejší načítání dat, která procesor potřebuje opakovaně. Tato mezipaměť je mnohem rychlejší než klasická RAM nebo pevné disky.
Co je kešování?
Kešování je proces ukládání dat do mezipaměti. Smyslem je zrychlit přístup k často používaným informacím a snížit zatížení systémů. Ve světě webových technologií se kešování aplikuje například na ukládání:
- Obrázků
- Stylů (CSS souborů)
- Skriptů (JavaScript)
- HTML souborů
Přínosy kešování
Kešování má hned několik významných výhod:
- Zrychlené načítání stránek – pokud se část obsahu stránky načte z keše, uživatel nemusí čekat, až se data znovu stáhnou ze vzdáleného serveru.
- Snížení zátěže serverů – když prohlížeč nebo jiný systém využívá kešovaná data, server je méně zatěžován požadavky na stahování.
- Ušetření datového provozu – menší počet datových přenosů znamená i úmoru dat, což je výhodné jak pro poskytovatele služeb, tak pro uživatele s omezeným internetovým tarifem.
Rizika a omezení kešování
I když je kešování velmi užitečné, existují situace, kdy může způsobit problémy:
- Zastaralá data – pokud se obsah na serveru změní, ale prohlížeč má v keši starší verzi, může zobrazit neaktuální informace.
- Potřeba čistění keše – občas je nutné ručně vymazat keš, aby se prohlížeč nebo systém mohl znovu připojit k serveru a načíst aktuální data.
- Bezpečnostní rizika – v určitých případech může uložení dat v keši představovat bezpečnostní riziko, zejéména pokud se jedná o citlivé informace.
Už jste četli? Splín × splýn
Jak vymazat keš?
Pro čištění keše v prohlížeči postupujte následujícím způsobem:
- Otevřete nastavení prohlížeče.
- Najděte sekci „Historie“ nebo „Čištění dat prohlížení“ nebo „Nastavení“ či „Nastavení soukromí“ (každý prohlížeč má tuto položku někde jinde, ale nejčastější cesta je právě skrze Nastavení).
- Vyberte možnost „Vymazat historii“ nebo „Smazat dočasné soubory/data“, případně se můžete setkat s pojmem „Obrázky a soubory v mezipaměti“. Jen si dejte pozor, ať si nesmažete například všechna hesla a jiné důležité údaje.
- Potvrďte akci a restartujte prohlížeč.

Zvolte smazat jen obrázky a soubory v mezipaměti, případně po rozkliku na rozšířená nastavení si zkontrolujte, že se vám nesmažou předuložená hesla v prohlížeči. Zároveň si nezapomeňte zvolit, zda chcete smazat jen data za poslední týdny nebo za celou historii, pokud plánujete větší úklid dat.
Jak keš funguje?
Představte si keš jako druh „šuplíku“, do kterého si systém ukládá část obsahu, aby ho nemusel pokaždé hledat znovu. Technicky vzato, kešování funguje následujícím způsobem:
- První dotaz na data – když uživatel nebo proces požádá o konkrétní informace (například otevře webovou stránku), prohlížeč nebo aplikace se spojí se serverem, aby tato data získala.
- Uložení dat do keše – jakmile jsou data přijata, uloží se kopie těchto dat do keše – obvykle v paměti zařízení nebo na disku. Tento proces je automatický a je řízen softwarem.
- Opakování dotazů – při dalším požadavku na stejná data systém nejprve zkontroluje, zda jsou tato data již dostupná v keši. Pokud ano, data se načtou přímo z keše bez nutnosti kontaktovat server.
- Aktualizace keše – pokud se data na serveru změní, keš se aktualizuje. Tento proces se často řídí pravidly, která určují, jak dlouho mohou data zůstat v keši (tzv. „doba života keše“).
Příklad fungování na webu
Když navštívíte webovou stránku, prohlížeč stáhne obsah jako jsou obrázky, styly (CSS) a skripty (JavaScript) ze serveru. Tyto soubory se uloží do keše. Při další návštěvě též stránky prohlížeč nejprve zkontroluje, zda jsou tato data uložena v keši a zda jsou aktuální. Pokud ano, použije je a načtení stránky je mnohem rychlejší.
Jak se keš rozhoduje, co uložit?
Kešovací systémy obvykle pracují podle pravidel, která určují, co a na jak dlouho uložit. Tato pravidla zahrnují:
- Frekvenci používání – data, která se používají často, mají větší prioritu pro uložení. Kešovací systém rozhoduje o tom, která data uložit, na základě toho, jak často jsou požadována. Když uživatel opakovaně přistupuje ke stejné webové stránce nebo aplikaci, prohlížeč sleduje, které prvky stránky (například obrázky, CSS soubory nebo JavaScript) jsou opakovaně stahovány ze serveru. Prohlížeč tyto informace zaznamenává a na základě toho se rozhodne, že soubory, které jsou často využívány, uloží do keše.Technicky vzato, každý soubor, který prohlížeč načítá, má svou jedinečnou URL adresu. Kešovací systém prohlížeče sleduje statistiky, jako je počet požadavků na daný soubor, a tyto statistiky ukládá do své interní databáze. Pokud je například obrázek s URL „https://example.com/logo.png“ opakovaně požadován při načítání domovské stránky, prohlížeč si tento soubor stáhne pouze jednou a následně ho uloží do keše. Při další návštěvě stránky se obrázek načte z keše, čímž se výrazně urychlí načítání stránky a sníží zátěž na server.
Keš se obvykle ukládá na disk uživatele v předem definované složce. U prohlížečů, jako je Chrome nebo Firefox, mohou být kešované soubory uloženy například v adresářích jako
C:\\Users\\[uživatel]\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cache. Tyto soubory mají často automaticky generované názvy (např. „f_000001“), ale uvnitř obsahují původní obsah stahovaného souboru.Kešovací mechanismy však nefungují pouze na úrovni prohlížeče. Podobná pravidla mohou být aplikována i v jiných typech systémů, jako jsou procesory nebo databáze, kde se sleduje, která data jsou nejčastěji používána, aby byla dostupná co nejrychleji.
Pokud máte další otázky k tématu, dejte vědět! 😊
- Velikost dat – kešovací systém při rozhodování, která data uložit, zohledňuje také jejich velikost. Menší soubory mají obvykle přednost, protože zabírají méně místa a umožňují efektivnější využití omezeného prostoru keše. Když je například kešovací prostor omezen na určitou kapacitu (například 500 MB), systém se snaží uložit co nejvíce menších souborů, aby pokryl širší spektrum požadavků uživatele.Technicky vzato, při stahování souborů prohlížeč kontroluje velikost každého souboru. Pokud je soubor příliš velký (například video ve vysokém rozlišení nebo velká PDF dokumentace), systém může rozhodnout, že jej do keše neuloží, protože by zabral příliš mnoho místa. Naopak malé soubory, jako jsou CSS (například 10 KB) nebo obrázky v nízkém rozlišení (například 50 KB), budou s větší pravděpodobností uloženy.
Kešovací algoritmy, jako je například Least Recently Used (LRU), navíc prioritizují soubory podle velikosti i podle jejich stáří. Pokud kešovací prostor dojde, velké soubory, které nebyly dlouho použity, budou odstraněny jako první, aby uvolnily místo pro nové a důležitější soubory.
V prohlížeči mohou mít uložené soubory náhodné názvy, ale systém udržuje metadata o jejich původní velikosti a čas posledního použití. Například malý CSS soubor může být uložen pod jménem „css123.cache“ s poznámkou, že jeho originální velikost byla 8 KB, což z něj dělá ideálního kandidáta pro dlouhodobé uložení v keši.
- Doba života (TTL – Time To Live) – každý soubor uložený v keši má definovanou dobu, po kterou může zůstat k dispozici. Tato doba života, známá jako TTL (Time To Live), je nastavena buď serverem, nebo samotným kešovacím systémem. TTL říká keši, jak dlouho má daný soubor považovat za aktuální a platný. Například při načítání webových stránek server může v odpovědi HTTP hlavičky specifikovat, že soubor „style.css“ má TTL nastavené na 24 hodin. To znamená, že prohlížeč může tento soubor používat z keše po dobu 24 hodin bez toho, aby se znovu dotazoval serveru. Pokud uživatel stránku navštíví po uplynutí této doby, prohlížeč znovu kontaktuje server, aby ověřil, zda se soubor nezměnil.Kešovací systém také sleduje, kdy byl soubor naposledy použit. Pokud je soubor v keši, ale nebyl po dlouhou dobu požadován, systém jej může odstranit, i když jeho TTL ještě nevypršelo. Tento přístup pomáhá uvolnit místo pro nové soubory.
V praxi může TTL pro různé typy souborů vypadat například takto:
- Obrázky (např. „logo.png“): 1 týden
- CSS a JavaScript: 1 den
- Dynamicky generované HTML stránky: 10 minut
Tento systém zajišťuje, že uživatelé mají vždy aktuální data, ale zároveň minimalizuje zátěž serverů tím, že se často používané statické soubory nemusejí stahovat při každém požadavku.
Proč keš šetří čas a zdroje?
Hlavní důvod, proč je kešování tak efektivní, spočívá v tom, že ukládá data blíže k uživateli nebo procesoru, který je potřebuje. Místo toho, aby se musela data pokaždé stahovat nebo generovat znovu, se využijí již dostupná data. To minimalizuje zpoždění a snižuje zátěž na serverech.
Když jsou data uložená v keši, mohou být načtena přímo z lokální paměti (například RAM) nebo z disku uživatele. Přístup k lokálním datům je mnohem rychlejší než přístup k datům na vzdáleném serveru, což minimalizuje zpoždění.
Příklad: Pokud webová stránka obsahuje 20 obrázků a každý z nich se načítá z externího serveru, může trvat jejich stahování například 2 sekundy. Pokud jsou však obrázky uložené v keši, doba načtení může být snížena na pouhých 0,1 sekundy, protože data jsou okamžitě dostupná z lokální paměti.
Když tisíce uživatelů přistupují ke stejné stránce, kešování minimalizuje počet požadavků, které server musí zpracovat. To umožňuje serverům obsloužit více uživatelů s nižším výkonovým zatížením.
Příklad: Představte si e-shop, který denně navštíví 100 000 lidí. Každý návštěvník načte průměrně 5 MB dat (obrázky, CSS, JavaScript). Pokud by žádné kešování neexistovalo, server by musel zpracovat přenos 500 000 MB (500 GB) dat každý den. Díky kešování však většina uživatelů načte pouze malé množství nových dat, protože většina souborů je již uložená v jejich prohlížečích. Tím může být denní zatížení serveru sníženo například na 100 GB, což je 80% úspora.
Méně datových přenosů znamená nižší spotřebu energie a menší nároky na hardware. Pro poskytovatele služeb to znamená úsporu finančních prostředků na infrastruktuře (například menší potřeba výkonných serverů nebo síťových přenosů).
Příklad: Hostingová služba účtuje 0,10 Kč za 1 GB přenesených dat. Bez kešování by e-shop z výše uvedeného příkladu platil 50 Kč denně za přenos 500 GB. Díky kešování se přenos sníží na 100 GB, což znamená úsporu 40 Kč denně. Při měsíčním provozu to dělá rozdíl 1 200 Kč.
Data z cache jsou uložená v mezipaměti prohlížeče. Tato mezipaměť může být uložená buď v operační paměti (RAM), nebo na pevném disku (SSD/HDD) zařízení uživatele, případně kombinovaně.
Jak to funguje v prohlížeči?
- Operační paměť (RAM) – slouží pro dočasné a rychlé uložení dat. RAM je mnohem rychlejší než pevný disk, takže prohlížeč může rychle přistupovat k často používaným datům, například stylům (CSS), JavaScriptovým souborům nebo obrázkům. Tato data ale zmizí, když prohlížeč nebo počítač restartujete.
- Pevný disk (SSD/HDD) – se využívá, pokud se jedná o větší množství dat nebo o soubory, které mají zůstat uloženy déle (i po restartu počítače), ukládají se do cache složky na disku. Tato data zde zůstávají, dokud nevyprší jejich TTL (doba života), nebo dokud uživatel nebo prohlížeč cache nevyčistí.
Jak cache v prohlížeči pracuje?
Prohlížeč používá speciální složku na disku k ukládání dat. Například:
- Google Chrome ukládá data ve složce:
C:\\Users\\[uživatel]\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cache - Firefox ukládá data ve složce:
C:\\Users\\[uživatel]\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\[profil]\\cache2
V těchto složkách jsou soubory často uloženy pod automaticky generovanými názvy, například „f_000123“. Prohlížeč ale ví, ke kterým URL adresám tyto soubory patří, protože tato data jsou spojena s metadaty uloženými v jeho interní databázi.
Co se děje při načítání stránky?
- Prohlížeč se nejdříve podívá do cache a ověří, zda požadovaný soubor (např. obrázek nebo CSS) již není uložený.
- Pokud je soubor v cache a stále platí (nevypršela jeho TTL), načte ho přímo z cache, což je mnohem rychlejší.
- Pokud soubor v cache není, prohlížeč kontaktuje server a stáhne nový soubor, který následně uloží do cache pro budoucí použití.
Tento systém je navržen tak, aby optimalizoval rychlost a minimalizoval potřebu opakovaného stahování stejných dat.
