Aktueller Standort: Startseite> Neueste Artikel> Cache verhindern: Tipps für Cache-Control und Pragma einstellen

Cache verhindern: Tipps für Cache-Control und Pragma einstellen

M66 2025-05-28

In der Webentwicklung müssen wir manchmal sicherstellen, dass der Browser- oder Proxy -Server unsere Seiten nicht zwischenspeichert, damit Benutzer bei jedem Besuch die neuesten Inhalte erhalten. Die von PHP bereitgestellte Header () -Funktion kann verwendet werden, um HTTP -Headers zur Steuerung des Cache -Verhaltens zu senden. In diesem Artikel wird ausführlich eingeführt, wie Cache-Control und Pragma mithilfe der Header () -Funktion eingestellt werden, um das Caching effektiv zu verhindern.

1. Warum müssen wir das Caching verhindern?

Der Browser -Cache soll die Leistung verbessern und den Serverdruck reduzieren. In einigen Szenarien (z. B. dynamische Daten, persönliche Informationen, sensible Betriebseiten usw.) müssen wir den Browser zwingen, den neuesten Inhalt jedes Mal vom Server zu erhalten, anstatt ihn aus dem Cache zu laden.

Wenn die Cache -Steuerung nicht korrekt festgelegt wird, sehen Benutzer möglicherweise abgelaufene Seiten, was zu inkonsistenten Daten oder in Betriebsfehlern führt.

2. Senden Sie Header () -Funktion, um HTTP -Header zu senden

Mit PHPs Header () -Funktion können Sie RAW -HTTP -Header -Informationen an den Browser senden, der vor jeder Ausgabe (Echo, Druck, HTML) aufgerufen werden muss.

3. Einrichten der Cache-Kontroll

Cache-Control ist ein wichtiger Header, der von HTTP/1.1 eingeführt wird und zur Definition von Caching-Richtlinien verwendet wird. Um das Caching zu deaktivieren, können Sie den folgenden Befehl verwenden:

  • No-Store : Kein Cache ist erlaubt.

  • No-Cache : Muss jedes Mal verehrt werden.

  • MUSS-REVALIDATE : Die abgelaufene Ressource muss dem Server bestätigt werden.

Beispielcode:

 <?php
// Cache deaktivieren
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
?>

Der zweite Header () Aufruf hier, der falsche Parameter bedeutet, dass der vorherige Header mit demselben Namen nicht überschrieben, sondern angehängt werden sollte.

4. Richten Sie Pragma auf

Pragma ist eine alte Methode in HTTP/1.0 zur Kompatibilität mit alten Proxy -Servern.

Beispielcode:

 <?php
header("Pragma: no-cache");
?>

Obwohl Cache-Control hauptsächlich verwendet wird, wird empfohlen, Pragma hinzuzufügen: No-Cache auch für die Kompatibilität.

5. Setup läuft ab

Zusätzlich zu Cache-Control und Pragma können Sie auch den Ablauf -Header festlegen, die Ablaufzeit in der Vergangenheit auf einen bestimmten Punkt einstellen und den Inhalt zum Auslaufen erzwingen.

Beispielcode:

 <?php
header("Expires: Thu, 01 Jan 1970 00:00:00 GMT");
?>

6. Vollständiges Beispiel

Hier ist ein komplettes Beispiel gegen Cache:

 <?php
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Expires: Thu, 01 Jan 1970 00:00:00 GMT");

// Angenommen, der dynamische Inhalt wird ausgegeben
echo "<html><body>";
echo "<h1>Aktuelle Zeit: " . date('Y-m-d H:i:s') . "</h1>";
echo "<p>Zugang <a href=\"https://m66.net/demo\">m66.net Beispielseite</a></p>";
echo "</body></html>";
?>

7. Dinge zu beachten

  • Header () muss vor dem Senden einer Ausgabe eingerufen werden, da sonst ein Fehler "bereits gesendete" Fehler geworfen wird.

  • Verschiedene Browser und Proxy -Server unterstützen die Cache -Anweisungen leicht unterschiedlich. Für die Versicherung ist es am besten, Cache-Control , Pragma und gleichzeitig abzulaufen .

  • Wenn Sie ein Cache-Plug-In oder ein CDN verwenden, müssen Sie möglicherweise auch eine Anti-Cache-Richtlinie auf diesen Ebenen konfigurieren.