|
|
Postat pe 07.09.2015 19:30:51
|
|
|
|

Antetul HTTP expiră și controlul cache-ului
1. Concept
Controlul cache-ului este folosit pentru a controla caching-ul HTTP (poate să nu fie parțial implementat în HTTP/1.0, doar Pragma: no-cache este implementat)
Formatul din pachet:
Cache-Control: cache-directive
directiva cache-ului poate fi următoarea:
Cerere: | "fără cache" | "fără magazin" | "max-age" "=" delta-secunde | "max-stale" [ "=" delta-secunde ] | "min-fresh" "=" delta-secunde | "Fără transformare" | "doar-dacă-ascuns" | "extensie cache"
Răspuns: | "public" | "private" [ "=" <"> numele câmpului <"> ] | "no-cache" [ "=" <"> numele câmpului <"> ] | "fără magazin" | "Fără transformare" | "trebuie să revalideze" | "revalidare prin procură" | "max-age" "=" delta-secunde | "s-maxage" "=" delta-secunde | "extensie cache"
Parte din descriere: Împărțit în cacheabil sau nu Public indică faptul că răspunsul poate fi stocat în cache de orice zonă cache. Privat indică faptul că întregul sau parțial mesajul de răspuns al unui singur utilizator nu poate fi procesat de cache-ul partajat. Acest lucru permite serverului să descrie doar când utilizatorul este Mesaj de răspuns parțial, care nu este valabil pentru cererile altor utilizatori. no-cache indică faptul că mesajul de cerere sau răspuns nu poate fi stocat în cache (HTTP/1.0 este înlocuit cu no-cache din Pragma) Conform a ceea ce poate fi stocat în cache No-store este folosit pentru a preveni publicarea neintenționată a informațiilor importante. Trimiterea unui mesaj de cerere va face ca mesajele de cerere și răspuns să nu fie mai stocate în cache. Timeout conform cache-ului max-age indică faptul că clientul poate primi un răspuns cu o durată de viață de cel mult timp specificat (în secunde). min-fresh indică faptul că clientul poate primi un răspuns cu un timp de răspuns mai mic decât timpul curent plus timpul specificat. max-stale indică faptul că clientul poate primi mesaje de răspuns dincolo de perioada de timeout. Dacă specifici o valoare pentru mesajul max-staltal, atunci clientul poate Primește mesaje de răspuns care depășesc valoarea specificată a perioadei de ore suplimentare. Expirațiile reprezintă perioada existenței, permițând clientului să nu verifice (să facă o cerere) înainte de această perioadă, ceea ce este echivalent cu vârsta maximă Efectul. Dar dacă există în același timp, sunt suprascrise de vârsta maximă a Controlului Cache-ului. Format: Expiră = "Expiră" ":" HTTP-date De exemplu
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
2. Aplicare Set expire și controlul cache-ului prin META prin HTTP <meta http-equiv="Cache-Control" content="max-age=7200" /> <meta http-equiv="Expires" conținut="Lun, 20 iul 2009 23:00:00 GMT" /> Setările de mai sus sunt doar exemple, și chiar poți folosi unul dintre ele. Dacă îl scrii astfel, este valabil doar pentru pagina web, nu pentru imagini sau alte cereri de pe pagina web, și nu va folosi niciun cache. Astfel, clientul va avea mai multe cereri, iar deși este doar ceva care verifică statutul Ultimele modificări, numărul de cereri va afecta cu siguranță viteza de navigare. Dacă vrei să adaugi cache într-un fișier, poți folosi modulul mod_expire al Apache, care se scrie ca <IfModule mod_expires.c> Expiră Activ pe ExpirăImplicit "acces plus 1 zi" </IfModule> Îmi amintesc că ExpiresActive este setat pe Activat, nu l-am setat inițial și se pare că, indiferent cât de YSlow este YSlow, nu găsesc mecanismul de cache. Dacă îl adaugi așa, va apărea implicit la orice. Dacă vrei să vizezi tipuri individuale de MIME, poți: ExpiresByType imagine/gif "acces plus 5 ore și 3 minute" Vezi Modulul Apache mod_expires În plus, când dai click pe Refresh în browser, cererile trimise de client sunt toate max-age=0, indicând că cererea a fost validată și trimisă către server Dacă ceri să verifici cache-ul și apoi să actualizezi cache-ul, în general vei primi 304 Not Modified, ceea ce înseamnă că nu există nicio schimbare.
|
Precedent:Găsește locuri de muncă part-time și câștigă bani în plus Recrutează muncitori part-time cu tratament excelent, plată de plată, peste 300 pe ziUrmător:De exemplu, o interogare fuzzy în Linq către SQL
|