Web funguje z cache. Ako overiť pôvodný server?
Uložená odpoveď môže prekryť problém originu. Ako čítať cache hlavičky, pripraviť priamy test a oddeliť dostupnosť CDN od stavu aplikácie.

Úvodná stránka sa načíta, no nový obsah nepribúda a dynamická časť webu zlyháva. Pri použití CDN alebo reverznej proxy s cache sa oplatí zistiť, odkiaľ úspešná odpoveď prišla. Pôvodný server, označovaný ako origin, nemusel túto požiadavku vôbec obslúžiť. Nasledujúci postup rozlišuje verejnú cestu cez cache a overenie originu; príklady curl používajú Linux.
Uložte hlavičky aj okolnosti úspešného testu
Pre čítaciu URL použite curl -sS -D - -o /dev/null https://example.com/ a doménu nahraďte vlastnou. Príkaz zobrazí hlavičky a zahodí telo; obsah preverte osobitne. Zaznamenajte čas, URL, status a Cache-Control. Age odhaduje čas od vytvorenia alebo úspešnej validácie odpovede na origine. Nejde o dátum poslednej zmeny obsahu. Ani neprítomnosť Age nedokazuje kontakt s originom.
Doplňte diagnostické hlavičky konkrétneho poskytovateľa. Pri Cloudflare znamená CF-Cache-Status: HIT nájdenie zdroja v jeho cache. Význam iných hlavičiek overte v dokumentácii používanej vrstvy. Nakreslite si cestu požiadavky cez CDN, proxy a aplikáciu. Z odpovede jednej cache nevyvodzujte stav všetkých vrstiev a ku každému výsledku priraďte miesto merania.
Rozlíšte uloženú odpoveď od aktuálneho výsledku
Rozšírenie stale-if-error umožňuje cache za daných podmienok použiť odpoveď po skončení jej čerstvosti, keď nastane chyba. Konkrétne správanie závisí od podpory a konfigurácie. Takáto ochrana môže návštevníkovi zachovať prístup k obsahu. Pri diagnostike si však položte inú otázku: dokáže origin teraz vytvoriť odpoveď potrebnú pre funkciu, ktorá zlyháva? Úspešné zobrazenie uloženého článku to nepreverí.
Náhodný parameter v URL nie je univerzálny bypass. Cloudflare napríklad umožňuje query string z cache kľúča vylúčiť. Overte preto skutočné pravidlá. V Cache-Control odpovede no-cache bez argumentov vyžaduje validáciu pred opätovným použitím; no-store zakazuje ukladanie. Tieto významy nezamieňajte. Názov diagnostickej URL ani pridaná časová značka samy nepotvrdzujú, že ste oslovili aplikáciu.
Priamy test zachová hostname aj overenie TLS
Ak poznáte správnu adresu originu a máte k nemu prístup, príklad pre HTTPS je curl --noproxy '*' --resolve example.com:443:192.0.2.10 https://example.com/. Doménu aj ilustračnú IP nahraďte vlastnými hodnotami. --resolve mení adresu použitú pre daný hostname a port, pričom názov v URL zostáva pre SNI aj overenie certifikátu. --noproxy '*' vyradí proxy nastavenú pre curl.
Tento test odlišuje konkrétnu priamu cestu od verejnej cesty cez CDN; nepredstavuje úplný test infraštruktúry. Pred porovnaním overte protokol a autentifikáciu používanú na origine. Pri chránenom origine merajte z povoleného interného miesta a zachovajte pravidlá prístupu. Certifikačnú chybu posudzujte podľa očakávanej konfigurácie TLS. Overenie certifikátu ponechajte zapnuté, aby ste nemenili význam HTTPS testu.
Monitoring nech overuje obe cesty
Pre pravidelnú kontrolu originu pripravte čítaciu cestu s overeným obídením cache v každej príslušnej vrstve. Pri NGINX odlíšte proxy_cache_bypass, ktorý určuje nepoužitie uloženej odpovede, od proxy_no_cache, ktorý určuje neuloženie novej odpovede. Zámer konfigurácie potvrďte aj záznamom požiadavky na origine. Samotný úspešný stav kontroly bez tohto overenia ešte nevysvetľuje, čo monitor meria.
Verejnú kontrolu cez CDN ponechajte, pretože zodpovedá ceste návštevníka. Výsledok originu sledujte samostatne a porovnávajte čas, chybu aj očakávaný obsah. Po oprave zopakujte pôvodne zlyhávajúcu dynamickú operáciu a overte návrat novej odpovede cez bežnú cestu. Tak zistíte, či sa obnovila aplikácia a či klient dostáva správny výsledok aj cez cache.
- Uložte URL, čas, status a cache hlavičky.
- Overte pravidlá kľúča, čerstvosti a bypassu.
- Otestujte origin správnou cestou so zachovaným hostname.
- Porovnajte origin, verejnú cestu a pôvodnú operáciu.
Čo si odniesť
Fungujúca cache je užitočná aj počas poruchy, ale jej odpoveď nevysvetlí aktuálny stav originu. Ku každému monitoru si určte, ktorú cestu overuje. Výsledky oboch ciest potom spojte s operáciou, ktorú používateľ skutočne potrebuje dokončiť.
Dokumentácia a ďalšie čítanie
- RFC 9111: HTTP Caching, Age and Cache-Control
- Cloudflare: Cache responses and CF-Cache-Status
- RFC 5861: HTTP Cache-Control Extensions for Stale Content
- Cloudflare: Cache keys and query string settings
- everything curl: Name resolve tricks and HTTPS verification
- curl: Command-line options, headers, output and noproxy
- NGINX: proxy_cache_bypass and proxy_no_cache


