Wie aktiviere ich das Browser-Caching für meine Site? Setze ich einfach Cache-Control: public irgendwo in meinem Header so ein?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
Cache-Control:public;
>
Ich verwende die neueste Version von PHP, die auf der neuesten Version von XAMPP entwickelt wurde.
http
browser-cache
Andrew
quelle
quelle
Antworten:
Um die Cache-Steuerung in HTML zu verwenden, verwenden Sie das Meta-Tag , z
Der Wert im Inhaltsfeld wird als einer der vier folgenden Werte definiert.
Einige Informationen zum
Cache-Control
Header lauten wie folgtquelle
<meta>
schon immer eine schreckliche und flockige Methode, um das Caching festzulegen.no-store
Wert nicht korrekt (obwohl das Dokument selbst auf RFC 2068 verweist ) -no-store
verhindert, dass das Dokument überhaupt irgendwo gespeichert / zwischengespeichert wird. Zwar kannno-cache
es gespeichert werden, es muss jedoch jedes Mal beim Server nachgefragt werden. Browser neigen dazu,no-cache
Seiten zu speichern , um die Funktion der Zurück-Schaltfläche usw. zu aktivieren .Sie können die Header in PHP festlegen, indem Sie Folgendes verwenden:
Beachten Sie, dass die genauen verwendeten Header von Ihren Anforderungen abhängen (und ob Sie HTTP 1.0 und / oder HTTP 1.1 unterstützen müssen ).
quelle
Pragma
undExpires
sind wahrscheinlich für die überwiegende Mehrheit der Browser redundant. fastly.com/blog/headers-we-dont-wantWie ich geschrieben habe, ist es am besten, die Datei zu verwenden
.htaccess
. Achten Sie jedoch darauf, wann Sie den Inhalt im Cache belassen.Verwenden:
Wobei: 604800 = 7 Tage
PS: Hiermit können Sie jeden Header zurücksetzen
quelle
Auf der Seite unter http://www.askapache.com/htaccess/apache-speed-cache-control.html wird folgende Verwendung vorgeschlagen:
quelle
cache
undno-cache
).max-age
undpublic
nicht in Konflikt stehen, damit die Reihenfolge keine Rolle spielt.Header
Sie aktivieren müssen , da die Direktive verwendet wirdmod_headers
.a2enmod
einen symbolischen Link von/etc/apache2/mods-available/headers.load
zu verwenden oder einen symbolischen Link von zu erstellen/etc/apache2/mods-enabled/headers.load
.Dies ist das Beste, was
.htaccess
ich auf meiner aktuellen Website verwendet habe:quelle
<filesMatch "\.(x?html?|php)$">
, um zu vermeiden, dass statische HTML-Seiten zwischengespeichert werden. Der Rest der Dateimatches ist in Ordnung.<filesmatch "\.(eot|woff|otf|ttf|svg)$">
.css
undjs
auf privat, wenn Sie Proxy-Caching haben. Ich konnte in Ihrem Link keine Empfehlungen dazu finden. Die meisten CDNs empfehlen, diese Werte zwischenzuspeichern.Für Apache-Server sollten Sie mod_expires überprüfen, um Expires- und Cache-Control-Header festzulegen.
Alternativ können Sie die Header- Direktive verwenden, um Cache-Control selbst hinzuzufügen:
quelle
Mit dem Meta-Cache-Steuerungs-Tag können Web-Publisher festlegen, wie Seiten von Caches behandelt werden sollen. Dazu gehören Anweisungen zum Deklarieren, was zwischengespeichert werden soll, was von Caches gespeichert werden kann, Änderungen des Ablaufmechanismus sowie Steuerelemente zum erneuten Validieren und Neuladen.
Die zulässigen Werte sind:
Öffentlich - kann in öffentlichen freigegebenen Caches zwischengespeichert werden
Privat - darf nur im privaten Cache zwischengespeichert werden
no-Cache - darf nicht zwischengespeichert werden
no-Store - darf zwischengespeichert, aber nicht archiviert werden
Bitte achten Sie auf die Groß- und Kleinschreibung. Fügen Sie das folgende Meta-Tag in die Quelle Ihrer Webseite ein. Der Unterschied in der Schreibweise am Ende des Tags besteht darin, dass Sie entweder "/> = xml oder"> = html verwenden.
Quelle-> MetaTags
quelle
OWASP empfiehlt Folgendes:
Stellen Sie nach Möglichkeit sicher, dass der HTTP-Header für die Cache-Steuerung auf no-cache, no-store, must-revalidate, private gesetzt ist. und dass der Pragma-HTTP-Header ohne Cache gesetzt ist.
quelle