Gyorsítótárazás és HTTP-fejlécek: cache-alapok - illusztráció

Gyorsítótárazás és HTTP-fejlécek: cache-alapok

Frissítve: a gyorsítótárazási fejlécek 2026-os ajánlott beállításaival. (frissítve: )

Összefoglaló

  • A gyorsítótárazás (cache) azt jelenti, hogy a tartalom egy másolatát ideiglenesen eltároljuk közelebb a felhasználóhoz, így a következő kérést gyorsabban ki lehet szolgálni.
  • A viselkedést HTTP-fejlécek vezérlik: a Cache-Control adja meg, meddig érvényes egy tartalom, az ETag és a Last-Modified pedig segít eldönteni, változott-e.
  • A statikus fájlokat hosszan, de verziózva érdemes gyorsítótárazni, a gyakran változó vagy személyes tartalmat viszont rövid ideig vagy egyáltalán nem.

Mi az a gyorsítótárazás (cache)?

A gyorsítótárazás azt jelenti, hogy egy tartalom másolatát ideiglenesen eltároljuk közelebb a felhasználóhoz, hogy a következő kérést ne kelljen újra a fő szervertől lekérni. Ha a böngésző már letöltötte egyszer a logót vagy a stíluslapot, azt legközelebb a saját gyorsítótárából veszi elő, ami sokkal gyorsabb. A gyorsítótárazás így csökkenti a betöltési időt, a sávszélesség-használatot és a szerver terhelését.

A gyorsítótár több szinten is működhet: a felhasználó böngészőjében, egy közbülső CDN-en és a szerveren magán is. Minél közelebb van a másolat a felhasználóhoz, annál gyorsabb a kiszolgálás. A fenti ábra ezeket a szinteket szemlélteti a felhasználótól a szerverig.

A gyorsítótárazás az egyik leggyorsabban megtérülő sebességi eszköz, mert a visszatérő látogatóknak és a sok elemet betöltő oldalaknak érzékelhető gyorsulást ad. A kihívás nem a bekapcsolása, hanem a jó beállítása: úgy gyorsítani, hogy közben a frissített tartalom se ragadjon be a régi változatban.

A böngésző-, CDN- és szervergyorsítótár szintjei oszlopdiagramon
A tartalom több szinten is gyorsítótárazódhat: a böngészőben, a CDN-en és a szerveren.

Miért számít a gyorsítótárazás a gyakorlatban?

Egy tipikus weboldal betöltésekor a böngésző rengeteg különálló fájlt kér le: képeket, stílusokat, szkripteket, betűtípusokat. Ha ezeket minden látogatáskor újra le kellene tölteni, az minden alkalommal időbe és sávszélességbe kerülne. A gyorsítótárazással a visszatérő látogató szinte azonnal látja az oldalt, mert az elemek nagy része már nála van.

  • Gyorsabb betöltés a visszatérő látogatóknak, mert kevesebb fájlt kell letölteni.
  • Kisebb sávszélesség-használat, ami a felhasználónak és a szervernek is jó.
  • Kevesebb szerverterhelés, ami csúcsforgalomban stabilabb működést ad.
  • Jobb sebességi mutatók, amelyek az oldalélményt és a keresői megítélést is segítik.

A gyorsítótárazás tehát nem egyetlen látogatót gyorsít, hanem az egész rendszer hatékonyságát növeli. A jól beállított cache mellett a szerver csak a valóban szükséges, friss vagy dinamikus tartalmat állítja elő. Ez egyszerre javítja a sebességet és csökkenti az üzemeltetési terhelést.

A Cache-Control fejléc: meddig érvényes a tartalom?

A gyorsítótárazás viselkedését elsősorban a Cache-Control HTTP-fejléc vezérli, amely megmondja, meddig és hogyan tárolható egy tartalom. A legfontosabb irányelve a max-age, amely másodpercben adja meg, meddig tekinthető frissnek a másolat. Amíg ez az idő nem telik le, a böngésző a saját gyorsítótárából szolgál ki, új kérés nélkül.

A leggyakoribb Cache-Control irányelvek

  • max-age: hány másodpercig tekinthető frissnek a tartalom.
  • public: bármely gyorsítótár (böngésző, CDN) tárolhatja.
  • private: csak a felhasználó böngészője tárolhatja, közbülső gyorsítótár nem.
  • no-store: egyáltalán nem tárolható, mindig friss kérést igényel.
  • immutable: a tartalom a lejáratig biztosan nem változik, felesleges újra ellenőrizni.

A fenti trendábra jól mutatja, hogy a hosszabb, de verziózott élettartam több kérést szolgál ki a gyorsítótárból, ami gyorsabb oldalt eredményez. A kulcs a verziózás: a hosszú max-age csak akkor biztonságos, ha a fájl neve változáskor is módosul, így a böngésző az új változatot új URL-ként tölti le.

A gyorsítótárazott kérések arányának alakulása a lejárati idő függvényében
A hosszabb, de verziózott élettartam több kérést szolgál ki a gyorsítótárból.

ETag és Last-Modified: változott-e a tartalom?

Amikor egy gyorsítótárazott tartalom élettartama lejár, a böngészőnek el kell döntenie, kell-e újat letöltenie. Ebben segít az ETag és a Last-Modified fejléc: ezek a tartalom egyfajta ujjlenyomatát, illetve utolsó módosítási idejét hordozzák. A böngésző visszaküldi ezeket egy feltételes kérésben, és a szerver megmondja, változott-e valami.

Ha a tartalom nem változott, a szerver egy rövid „304 Not Modified” választ küld a teljes fájl helyett. Ez azt jelenti, hogy a böngésző nyugodtan használhatja a már nála lévő másolatot, és nem kell újra letöltenie a teljes adatot. Így a lejárat utáni ellenőrzés is gyors marad, mert a legtöbb esetben csak egy apró válasz utazik.

Az ETag és a Last-Modified tehát a gyorsítótárazás finomhangolásának eszköze: a felesleges újraletöltéseket előzi meg. Míg a max-age azt szabja meg, meddig ne kérdezz vissza egyáltalán, addig ezek a fejlécek a visszakérdezést teszik olcsóvá, amikor mégis szükség van rá.

Statikus és dinamikus tartalom eltérő kezelése

A jó gyorsítótárazás alapszabálya, hogy a különböző tartalomtípusokat különbözőképpen kell kezelni. A statikus, ritkán változó fájlokat - képeket, stílusokat, szkripteket - hosszan érdemes gyorsítótárazni, mert ezek sokáig ugyanazok maradnak. A gyakran változó vagy személyre szabott tartalmat viszont csak röviden vagy egyáltalán nem szabad tárolni.

  • Statikus fájlok (kép, CSS, JS, betűtípus): hosszú max-age, de verziózott fájlnévvel.
  • HTML-oldalak: rövidebb élettartam vagy feltételes ellenőrzés az ETag segítségével.
  • Személyre szabott tartalom (kosár, fiók): private vagy no-store, hogy ne keveredjen.
  • API-válaszok: a frissességi igény szerint finomhangolt, gyakran rövid élettartam.

A leggyakoribb hiba, ha a HTML-t is hosszan gyorsítótárazzák verziózás nélkül: ilyenkor a látogató a régi oldalt látja, hiába frissítetted a tartalmat. A helyes megközelítés a statikus elemek hosszú, verziózott tárolása és a HTML rövid vagy feltételes kezelése - így a frissítés azonnal látszik, a sebesség mégis megmarad.

A verziózás: hogyan frissülj be azonnal?

A hosszú gyorsítótárazás és a friss tartalom látszólag ellentmond egymásnak, de a verziózás feloldja ezt. A lényeg, hogy a fájl neve vagy URL-je változzon meg, amikor a tartalma módosul. A böngésző az új nevet új fájlként tölti le, a régit pedig nyugodtan gyorsítótárazhatja hosszan, mert az soha többé nem változik.

A verziózás gyakorlati módjai

A leggyakoribb módszer a fájlnév kiegészítése egy tartalomfüggő ujjlenyomattal vagy egy verziószámmal, például a stíluslap URL-jében. Amikor a fájl módosul, az ujjlenyomat is megváltozik, így a böngésző kénytelen az új változatot letölteni. Ez teszi lehetővé az immutable, akár egy éves gyorsítótárazást is minden kockázat nélkül.

Fontos, hogy minden verziózandó elemre gondolj, ne csak a stíluslapra: a szkriptekre és a fontosabb képekre is. Ha egy fájlt kihagysz, a látogató a régi, gyorsítótárazott változatot kaphatja, és az új funkció vagy javítás nem jelenik meg nála. A következetes verziózás ezért a hosszú gyorsítótárazás feltétele.

Egy egyszerű, jól működő gyorsítótárazási stratégia

A jó stratégia rétegenként ad más szabályt, ahogy a fenti ábra is mutatja: a statikus és a változó tartalom külön kezelést kap. A cél, hogy a lehető legtöbb kérés a gyorsítótárból szolgáljon ki, miközben a frissítés mindig azonnal megjelenik. Ez a kettősség adja a jól beállított cache lényegét.

  • Verziózott statikus fájlok: hosszú max-age, public, immutable.
  • HTML: rövid vagy nulla élettartam, feltételes ellenőrzéssel (ETag).
  • Személyes tartalom: private vagy no-store, hogy sose keveredjen más felhasználóéval.
  • CDN és szerver: egymással összhangban lévő szabályok, hogy ne legyen ütközés.

Ez a felállás a legtöbb weboldalnál jól működik, és egyszerűen karbantartható. A visszatérő látogató szinte azonnal látja az oldalt, a frissítés mégis rögtön megjelenik, mert a verziózás gondoskodik róla. A finomhangolás mindig a valós tartalomtípusokhoz igazodjon, ne egyetlen szabály uralja az egészet.

A statikus és dinamikus tartalom eltérő gyorsítótárazása koncentrikus körökkel
A jó stratégia rétegenként más szabályt ad a statikus és a változó tartalomnak.

Tipikus gyorsítótárazási hibák

A leggyakoribb hiba a verziózás nélküli hosszú gyorsítótárazás: ilyenkor a frissített fájl a régi, eltárolt változatban ragad, és a látogató elavult tartalmat lát. Ez különösen a szkripteknél okoz fejtörést, mert egy be nem frissülő JavaScript miatt egy új funkció úgy tűnhet, mintha nem is működne. A megoldás mindig a következetes verziózás.

A másik véglet, amikor semmit sem gyorsítótáraznak, így minden látogatáskor minden fájl újra letöltődik - feleslegesen lassítva az oldalt. Gyakori hiba az is, hogy a személyes tartalmat közbülső gyorsítótár tárolja, ami adatszivárgáshoz vezethet. A jó beállítás mindkét szélsőséget elkerüli: gyorsít, ahol lehet, és óvatos ott, ahol kell.

Mikor érdemes szakértőt bevonni?

A gyorsítótárazás alapjait érdemes megérteni, de a helyes beállítás - a fejlécszabályok, a verziózás, a statikus és dinamikus tartalom szétválasztása - gyakran szakértelmet kíván. Ha frissítés után elavult tartalmat látsz, vagy egy új funkció „nem működik” a látogatóknál, jó eséllyel a gyorsítótárazás a felelős. Ilyenkor egy üzemeltetéssel foglalkozó szakértő gyorsan a hiba forrásáig jut.

Cégünk a weboldal üzemeltetés keretében a gyorsítótárazási szabályokat eleve verziózással és tartalomtípus szerinti bontással állítja be. Így a webhely gyors marad, a frissítések mégis azonnal megjelennek, és nem ragad be elavult tartalom a látogatóknál.

Ajánlott forrás: az MDN útmutatója a HTTP-gyorsítótárazásról.

Összegzés: a cache-alapok röviden

A gyorsítótárazás a tartalom másolatát tárolja közelebb a felhasználóhoz, így a következő kérés gyorsabban kiszolgálható - mindezt a böngésző, a CDN és a szerver szintjén. A viselkedést HTTP-fejlécek vezérlik: a Cache-Control adja meg, meddig érvényes a tartalom, az ETag és a Last-Modified pedig segít eldönteni, változott-e.

A jó gyakorlat rétegenként más szabályt ad: a verziózott statikus fájlokat hosszan, immutable módon gyorsítótárazd, a HTML-t rövid vagy feltételes ellenőrzéssel kezeld, a személyes tartalmat pedig private vagy no-store fejléccel óvd. A hosszú gyorsítótárazás feltétele a következetes verziózás, hogy a frissítés mindig azonnal megjelenjen.

A leggyakoribb hibák - a verziózatlan hosszú tárolás, a teljes tárolás hiánya és a személyes tartalom közbülső gyorsítótárazása - mind elkerülhetők egy egyszerű, tartalomtípus szerinti stratégiával. Ha frissítés után elavult tartalmat látsz, egy rövid üzemeltetési átvizsgálás megmutatja, hol akadt el a cache.

Gyakran ismételt kérdések

Mi a különbség a Cache-Control és az ETag között?

A Cache-Control azt szabja meg, meddig tekinthető frissnek egy tartalom, tehát meddig ne kérdezzen vissza egyáltalán a böngésző. Az ETag ezzel szemben a tartalom egyfajta ujjlenyomata, amely a lejárat után segít eldönteni, változott-e valami. A kettő együtt dolgozik: a Cache-Control halasztja az ellenőrzést, az ETag pedig olcsóvá teszi, amikor mégis sor kerül rá.

Miért látom frissítés után a régi oldalt?

Ez szinte mindig a verziózás nélküli hosszú gyorsítótárazás következménye: a böngésző a régi, eltárolt fájlt szolgálja ki, mert még nem járt le az élettartama. Különösen gyakori a szkripteknél, ahol emiatt egy új funkció úgy tűnhet, mintha nem működne. A megoldás a fájlok verziózása, hogy módosításkor az URL is megváltozzon, és a böngésző új fájlként töltse le őket.

Meddig gyorsítótárazzam a statikus fájlokat?

A verziózott statikus fájlokat - képeket, stílusokat, szkripteket - nyugodtan tárolhatod hosszan, akár egy évig, immutable jelöléssel. Ez azért biztonságos, mert a fájl neve változáskor is módosul, így a böngésző az új változatot új URL-ként tölti le. Verziózás nélkül viszont soha ne állíts be hosszú élettartamot, mert akkor a frissítés beragad a régi változatba.

Kell egyáltalán gyorsítótáraznom a HTML-oldalakat?

A HTML-t jellemzően rövid élettartammal vagy feltételes ellenőrzéssel érdemes kezelni, mert gyakrabban változik, mint a statikus fájlok. Ha hosszan és verziózás nélkül tárolod, a látogató elavult oldalt lát a frissítés után. Az ETag alapú, feltételes kérés jó egyensúly: gyors, mert csak akkor tölt le újat, ha valóban változott a tartalom.

Mi az a „304 Not Modified” válasz?

A 304-es válasz azt jelenti, hogy a böngésző által már letöltött tartalom nem változott, ezért nem kell újra letölteni a teljes fájlt. A böngésző egy feltételes kérést küld az ETag vagy a Last-Modified alapján, és a szerver ezzel a rövid válasszal jelzi, hogy a meglévő másolat érvényes. Így a lejárat utáni ellenőrzés is gyors marad, mert alig utazik adat.

Hogyan kezeljem a bejelentkezett felhasználók tartalmát?

A személyre szabott tartalmat - például a kosarat vagy a fiókadatokat - private vagy no-store fejléccel kell megjelölni, hogy közbülső gyorsítótár ne tárolja. Ha egy közös gyorsítótár eltárolná, más felhasználó is láthatná, ami adatszivárgáshoz vezetne. Ezt a tartalmat ezért mindig a fő szerver állítsa elő, felhasználóhoz kötötten, gyorsítótárazás nélkül.

Kapcsolódó szolgáltatások

Varga Réka - Keresőoptimalizálási és tartalomszakértő
Szerző Varga Réka Keresőoptimalizálási és tartalomszakértő

Varga Réka keresőoptimalizálási és tartalomszakértő, tíz éve foglalkozik google seo stratégiával, tartalomfejlesztéssel és a modern AI-keresőkre (GEO) való felkészítéssel. Cégünk seo- és tartalomcsapatának vezetője, aki a technikai alapoktól a citálható tartalomig kézben tartja a teljes folyamatot.

A szerző összes cikke
Olvass tovább

További cikkek