HTTP hlavička Expires a riadenie cache
1. Koncept
Riadenie cache sa používa na riadenie HTTP cache (nemusí byť čiastočne implementované v HTTP/1.0, implementovaný je iba Pragma: no-cache)
Formát v balíku:
Cache-Control: cache-directive
Cache-Directive môže byť nasledovné:
Žiadosť: | "bez cache" | "Žiadny obchod" | "max-vek" "=" delta-sekundy | "max-stale" [ "=" delta-sekundy ] | "min-fresh" "=" delta-sekundy | "Bez transformácie" | "len ak kešované" | "rozšírenie cache"
Odpoveď: | "verejný" | "súkromné" [ "=" <"> názov poľa <"> ] | "no-cache" [ "=" <"> názov poľa <"> ] | "Žiadny obchod" | "Bez transformácie" | "musím revalidovať" | "Proxy-revalidovať" | "max-vek" "=" delta-sekundy | "s-maxage" "=" delta-sekundy | "rozšírenie cache"
Časť popisu: Rozdelené na cacheovateľné alebo nie Verejné znamená, že odpoveď môže byť uložená v akejkoľvek cache oblasti. Súkromné znamená, že celá alebo časť odpovednej správy jedného používateľa nemôže byť spracovaná zdieľanou cache. To umožňuje serveru opísať len vtedy, keď používateľ Čiastočná odpoveď, ktorá nie je platná pre požiadavky od iných používateľov. no-cache znamená, že požiadavka alebo odpoveď nemôžu byť uložené do vyrovnávacej pamäte (HTTP/1.0 je nahradený Pragma no-cache) Podľa toho, čo sa dá uložiť do vyrovnávacej pamäte No-store sa používa na zabránenie neúmyselného zverejnenia dôležitých informácií. Odoslanie správy so žiadosťou spôsobí, že požiadavky a odpovede sa neukladajú do vyrovnávacej pamäte. Časový limit podľa cache Max-age znamená, že klient môže prijať odpoveď s životnosťou najviac určenou za stanovený čas (v sekundách). min-fresh znamená, že klient môže prijať odpoveď s časom odozvy kratším ako aktuálny čas plus špecifikovaný čas. max-stale znamená, že klient môže prijímať odpovedné správy aj po uplynutí časovej lehoty. Ak zadáte hodnotu pre správu max-stale, klient môže Prijímajte odpovedné správy, ktoré presahujú stanovenú hodnotu nadčasového času. Expires predstavujú čas existencie, čo klientovi umožňuje nekontrolovať (nežiadať) pred týmto časom, čo zodpovedá maximálnemu veku Efekt. Ak však existujú súčasne, sú prepísané maximálnym vekom Cache-Control. Formát: Expires = "Expires" ":" HTTP-dátum Napríklad
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
2. Aplikácia Set expires a riadenie cache cez META cez HTTP <meta http-equiv="Cache-Control" obsah="max-age=7200" /> <meta http-equiv="Expires" content="Po 20. júl 2009 23:00:00 GMT" /> Vyššie uvedené nastavenia sú len príklady a jeden z nich môžete skutočne použiť. Ak to napíšete takto, platí to len pre webovú stránku, nie pre obrázky alebo iné požiadavky na stránke, a nebude to robiť žiadnu cache. Týmto spôsobom bude mať klient viac požiadaviek, a hoci ide len o kontrolu stavu Posledná úprava, počet požiadaviek určite ovplyvní rýchlosť prehliadania. Ak chcete pridať cache do súboru, môžete použiť mod_expire modul od Apache, ktorý je napísaný ako <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 deň" </IfModule> Pamätám si, že ExpiresActive je nastavený na Zapnuté, najprv som ho nezapínal, a zdá sa, že nech je YSlow akokoľvek, nemôžem nájsť mechanizmus cache. Ak to pridáte takto, predvolene sa zobrazí všetko. Ak chcete cieliť na jednotlivé typy MIME, môžete: ExpiresByType image/gif "access plus 5 hodín 3 minút" Pozri Apache Module mod_expires Okrem toho, keď kliknete na Obnoviť v prehliadači, požiadavky odosielané klientom sú všetky max-age=0, čo znamená, že požiadavka je overená a odoslaná serveru Ak požiadate o kontrolu cache a následnú aktualizáciu, zvyčajne dostanete 304 Not Modified, čo znamená, že sa nič nezmenilo.
|