HTTP-Header läuft ab und Cache-Control
1. Konzept
Cache-Control wird verwendet, um HTTP-Caching zu steuern (möglicherweise nicht teilweise in HTTP/1.0 implementiert, nur Pragma: No-Cache ist implementiert)
Format im Paket:
Cache-Control: cache-directive
Cache-Direktive kann wie folgt sein:
Anfrage: | "No-Cache" | "No-Laden" | "Max-Age" "=" Delta-Sekunden | "max-stale" [ "=" delta-sekunden ] | "min-frisch" "=" delta-sekunden | "Keine Transformation" | "nur-wenn-gecachet" | "Cache-Erweiterung"
Antwort: | "öffentlich" | "Privat" [ "=" <"> Feldname <"> ] | "No-Cache" [ "=" <"> Feldname <"> ] | "No-Laden" | "Keine Transformation" | "Muss neu validieren" | "Proxy-Revalidate" | "Max-Age" "=" Delta-Sekunden | "s-maxage" "=" delta-sekunden | "Cache-Erweiterung"
Teil der Beschreibung: Unterteilt in cachefähig oder nicht Public zeigt an, dass die Antwort von jedem beliebigen Cache-Bereich zwischengespeichert werden kann. Privat bedeutet, dass die gesamte oder ein Teil der Antwortnachricht eines einzelnen Benutzers vom gemeinsamen Cache nicht verarbeitet werden kann. Dies ermöglicht es dem Server, nur dann zu beschreiben, wenn der Benutzer Teilantwort-Nachricht, die für Anfragen anderer Nutzer nicht gültig ist. no-cache zeigt an, dass die Anfrage oder Antwortnachricht nicht zwischengespeichert werden kann (HTTP/1.0 wird durch Pragmas No-Cache ersetzt) Je nachdem, was zwischengespeichert werden kann No-Store wird verwendet, um zu verhindern, dass wichtige Informationen unbeabsichtigt veröffentlicht werden. Das Einsenden einer Anfrage sorgt dafür, dass die Anfrage- und Antwortnachrichten nicht mehr gecachet werden. Timeout laut Cache Max-Age bedeutet, dass der Client eine Antwort mit einer Lebensdauer von höchstens einer angegebenen Zeit (in Sekunden) erhalten kann. min-fresh zeigt an, dass der Client eine Antwort mit einer Antwortzeit erhalten kann, die kürzer als die aktuelle Zeit plus die angegebene Zeit ist. max-veraltet bedeutet, dass der Client Antwortnachrichten über die Auszeit hinaus erhalten kann. Wenn du einen Wert für die Max-Stale-Nachricht angibst, kann der Client Erhalten Sie Antwortnachrichten, die den angegebenen Wert des Überstundenzeitraums überschreiten. Laufzeiten repräsentieren die Existenzzeit, sodass der Client vor dieser Zeit nicht prüfen (eine Anfrage stellen kann), was dem Maximalalter entspricht Effekt. Wenn sie jedoch gleichzeitig existieren, werden sie durch das maximale Alter von Cache-Control überschrieben. Format: Expires = "Expires" ":" HTTP-date Zum Beispiel
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
2. Anwendung Setzen Sie ablaufen und Cache-Control über META über HTTP <meta http-equiv="Cache-Control" content="max-age=7200" /> <meta http-equiv="Expires" content="Mo, 20. Juli 2009 23:00:00 GMT" /> Die oben genannten Einstellungen sind nur Beispiele, und du kannst tatsächlich eine davon verwenden. Wenn du es so schreibst, ist es nur für die Webseite gültig, nicht für Bilder oder andere Anfragen auf der Webseite, und es gibt keinen Cache. So hat der Client mehr Anfragen, und obwohl es nur darum geht, den Status zuletzt geändert zu überprüfen, beeinflusst die Anzahl der Anfragen definitiv die Browsergeschwindigkeit. Wenn du einer Datei Cache hinzufügen möchtest, kannst du das Apache-Modul mod_expire verwenden, das geschrieben ist als <IfModule mod_expires.c> Gültig am ExpiresStandard "Zugriff plus 1 Tage" </IfModule> Ich erinnere mich, dass ExpiresActive auf An steht, ich habe es anfangs nicht aktiviert, und es scheint, egal wie YSlow ist, ich kann den Caching-Mechanismus nicht finden. Wenn du es so hinzufügst, wird standardmäßig alles angezeigt. Wenn du einzelne MIME-Typen ansprechen möchtest, kannst du: ExpiredByType Bild/GIF "Zugriff plus 5 Stunden 3 Minuten" Siehe Apache-Modul mod_expires Außerdem sind beim Klicken auf Aktualisierung im Browser alle vom Client gesendeten Anfragen max-age=0, was darauf hinweist, dass die Anfrage validiert und an den Server gesendet wurde Wenn du darum bittest, den Cache zu überprüfen und ihn dann zu aktualisieren, bekommst du in der Regel 304 Nicht geändert, was bedeutet, dass sich nichts ändert.
|