HTTP fejléc lejár és gyorstár-vezérlés
1. Koncepció
Cache-control a HTTP gyorsítótár vezérlésére szolgál (lehet, hogy részben nem valósítható meg HTTP/1.0-ban, csak a Pragma: no-cache van implementálva)
Formátum a csomagban:
Cache-Control: cache-directive
Cache-direktíva lehet a következő:
Kérés: | "Cache nélkül" | "Nincs bolt" | "max-age" "=" delta-másodpercek | "max-elale" [ "=" delta-másodpercek ] | "min-fresh" "=" delta-másodperc | "Átalakítás nélkül" | "csak ha gyorsítótárban van" | "cache-extension"
Válasz: | "public" | "private" [ "=" <"> mezőnév <"> ] | "no-cache" [ "=" <"> mezőnév <"> ] | "Nincs bolt" | "Átalakítás nélkül" | "Kötelező újravalidálni" | "proxy-revalidated" | "max-age" "=" delta-másodpercek | "s-maxage" "=" delta-másodperc | "cache-extension"
A leírás egy része: Gyorsítótározható vagy sem A nyilvános jelzés szerint a választ bármely gyorsítótár területe gyorsítótározhatja. A privát azt jelenti, hogy egyetlen felhasználó válaszüzenetének teljes vagy egy része nem feldolgozható a megosztott gyorsítótárban. Ez lehetővé teszi a szerver számára, hogy csak akkor írja le a felhasználót, ha a felhasználó Részleges válaszüzenet, amely más felhasználók kérései esetén nem érvényes. no-cache azt jelzi, hogy a kérés vagy válaszüzenet nem gyorsaváltható (a HTTP/1.0 helyett Pragma no-cache-je vált fel) Attól függően, amit gyorsítótárban lehet tárolni A no-store-t azért használják, hogy megakadályozzák a fontos információk akaratlan közzétételét. Ha beküld egy kérés üzenetet, akkor a kérés és a válasz üzenetek nem gyorsítótározhatók. Időkérés a cache szerint a max-age azt jelenti, hogy az ügyfél olyan választ kaphat, amelynek élettartama legfeljebb egy meghatározott időt (másodpercekben) tartalmaz. A min-fresh azt jelzi, hogy az ügyfél olyan választ kaphat, amelynek válaszideje kisebb, mint a jelenlegi idő plusz a megadott idő. max-stale azt jelzi, hogy az ügyfél a válaszüzeneteket a kilépési időszakon túl is kaphatja. Ha megadsz egy értéket a max-stale üzenethez, akkor a kliens Olyan válaszüzeneteket kapjon, amelyek meghaladják az időtúlóra meghatározott értékét. A lejáratok a létezési időt jelentik, így az ügyfél nem ellenőrizheti (kérhet) ezt az időpontot, ami a max-age-nak felel meg Hatás. De ha egyszerre léteznek, felülírja őket a Cache-Control maximális kora. Formátum: Expires = "Expires" ":" HTTP-date Például
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
2. Alkalmazás Beállítás lejáratok és gyorsítótár-vezérlés META-n keresztül HTTP-n keresztül <meta http-equiv="cache-control" content="max-age=7200" /> <meta http-equiv="Expires" content="2009. július 20., hétfő, 23:00:00 GMT" /> A fenti beállítások csak példák, és tényleg használható az egyiket. Ha így írod, csak a weboldalra érvényes, nem képekre vagy egyéb kérésekre a weboldalon, és nem fog gyorsítótárt használni. Így a kliens több kérést kap, és bár ez csak a Legutóbb módosított állapotot ellenőrzi, a kérések száma biztosan befolyásolja a böngészési sebességet. Ha gyorsítótárt akarsz hozzáadni egy fájlhoz, használhatod az Apache mod_expire modulját, amely így van írva: <IfModule mod_expires.c> ExpiresActive On Lejár Alapértelmezett "hozzáférés plusz 1 nap" </IfModule> Emlékszem, hogy a ExpiresActive bekapcsolva van, először nem kapcsoltam be, és úgy tűnik, bármennyire is a YSlow, nem találom a gyorsítótár mechanizmust. Ha így teszed be, alapértelmezett minden megoldás lesz. Ha egyéni MIME típusokat szeretnél célozni, a következőket teheted: ExpiresByType kép/gif "hozzáférés plusz 5 óra 3 perc" Lásd az Apache modul mod_expires Ezen felül, amikor a böngészőben a Frissítés gombra kattintasz, a kliens által küldött kérések mind max-age=0 értékűek, ami azt jelzi, hogy a kérés ellenőrizve van és elküldve a szervernek Ha kéred a gyorsítótár ellenőrzését, majd frissítsd azt, általában 304 Not Modified (Nincs módosítva) értéket kapsz, ami azt jelenti, hogy nincs változás.
|