HTTP hlavička Expires a řízení cache
1. Koncept
Řízení cache se používá k řízení HTTP cache (nemusí být částečně implementováno v HTTP/1.0, pouze v Pragma: no-cache je implementováno)
Formát v balíčku:
Cache-Control: cache-directive
Direktiva cache může být následující:
Žádost: | "Žádná keš" | "Žádný obchod" | "max-věk" "=" delta-sekundy | "max-stale" [ "=" delta-sekundy ] | "min-fresh" "=" delta-sekundy | "Ne-transformace" | "pouze pokud je uloženo do keše" | "rozšíření cache"
Odpověď: | "veřejné" | "soukromý" [ "=" <"> název pole <"> ] | "no-cache" [ "=" <"> název pole <"> ] | "Žádný obchod" | "Ne-transformace" | "Musí-revalidovat" | "Proxy-revalidace" | "max-věk" "=" delta-sekundy | "s-maxage" "=" delta-sekundy | "rozšíření cache"
Část popisu: Rozděleno na cache-ovací nebo ne Public znamená, že odpověď může být uložena v jakékoli cache oblasti. Soukromé znamená, že celá nebo část odpovědi jednoho uživatele nemůže být zpracována sdílenou cache. To umožňuje serveru popisovat pouze tehdy, když uživatel je Částečná odpověď, která není platná pro požadavky od jiných uživatelů. no-cache znamená, že zpráva o požadavku nebo odpovědi nemůže být uložena do mezipaměti (HTTP/1.0 je nahrazena Pragmovým no-cache) Podle toho, co lze uložit do mezipaměti Funkce No-store se používá k zabránění nechtěnému zveřejnění důležitých informací. Odeslání žádosti způsobí, že požadavky a odpovědi se neukládají do mezipaměti. Časový limit podle cache Max-age znamená, že klient může obdržet odpověď s životností nejvýše stanovenou dobu (v sekundách). min-fresh znamená, že klient může přijmout odpověď s dobou odezvy kratší než aktuální čas plus specifikovaný čas. max-stale znamená, že klient může přijímat odpovědi po uplynutí časové lhůty. Pokud zadáte hodnotu pro zprávu max-stale, klient může Přijímejte odpovědi, které překračují stanovenou hodnotu přesčasového období. Expires představují čas existence, což klientovi umožňuje nekontrolovat (neprovést požadavek) před tímto časem, což odpovídá maximálnímu věku Efekt. Pokud však existují současně, jsou přepsány maximálním věkem Cache-Control. Formát: Expires = "Expires" ":" HTTP-datum Například
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
2. Aplikace Set expires a cache-control přes META přes HTTP <meta http-equiv="Cache-Control" obsah="max-age=7200" /> <meta http-equiv="Expires" content="Po 20. července 2009 23:00:00 GMT" /> Výše uvedená nastavení jsou jen příklady a můžete jeden z nich skutečně použít. Pokud to napíšete tímto způsobem, platí to pouze pro webovou stránku, ne pro obrázky nebo jiné požadavky na webové stránce, a nebude to dělat žádnou cache. Tímto způsobem bude mít klient více požadavků, a i když jde jen o kontrolu stavu Poslední úpravy, počet požadavků rozhodně ovlivní rychlost prohlížení. Pokud chcete přidat cache do souboru, můžete použít mod_expire modul Apache, který je napsán jako <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 den" </IfModule> Pamatuji si, že ExpiresActive je nastavený na Zapnuto, nejdřív jsem to nezapnul, a zdá se, že ať je YSlow jakkoliv, nemůžu najít mechanismus cache. Když to přidáte takto, bude to ve výchozím nastavení všechno. Pokud chcete cílit na jednotlivé typy MIME, můžete: ExpiresByType image/gif "access plus 5 hodin 3 minuty" Viz Apache Module mod_expires Navíc, když kliknete na Obnovit v prohlížeči, požadavky odeslané klientem jsou všechny max-age=0, což znamená, že požadavek je ověřen a odeslán serveru Pokud požádáte o kontrolu cache a pak aktualizaci, obvykle dostanete 304 Not Modified, což znamená, že se nic nezměnilo.
|