Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich HTTP-Cache-Header mit PHP nutzen, um die Webleistung zu verbessern?

Wie kann ich HTTP-Cache-Header mit PHP nutzen, um die Webleistung zu verbessern?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-05 16:18:02454Durchsuche

How can I utilize HTTP cache headers with PHP to enhance web performance?

HTTP-Cache-Header: Web-Leistung mit PHP verbessern

Bei Websites mit größtenteils statischen Inhalten kann die Implementierung von HTTP-Cache-Headern die Leistung erheblich verbessern. PHP bietet mehrere integrierte Funktionen, die bei dieser Aufgabe helfen.

Wichtige Cache-Header

Um Caching zu aktivieren, sollten Sie die folgenden Header verwenden:

  1. Cache-Control: Gibt die Cache-Richtlinie an. Für private Inhalte, die nicht öffentlich zwischengespeichert werden sollen, verwenden Sie private_no_expire. Für öffentliche Inhalte mit langer Lebensdauer verwenden Sie public, max-age=.
  2. Läuft ab: Legt ein Ablaufdatum für den zwischengespeicherten Inhalt fest. Für Inhalte, die sich nie ändern, sollten Sie erwägen, ein entferntes Datum festzulegen.
  3. Letzte Änderung: Gibt an, wann der Inhalt das letzte Mal geändert wurde. Dadurch können Browser feststellen, ob zwischengespeicherte Inhalte noch aktuell sind.
  4. ETag: Eine eindeutige Kennung für den Inhalt. Wenn das ETag mit dem Wert im If-None-Match-Anfrageheader übereinstimmt, kann der Browser davon ausgehen, dass sich der Inhalt nicht geändert hat, und die zwischengespeicherte Version bereitstellen.

Umgang mit bedingten Anfragen

An Optimieren Sie die Leistung weiter und verarbeiten Sie bedingte Anfragen:

<code class="php">$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT';
$etag = $language . $timestamp;

$if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false;
$if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] : false;
if ((($if_none_match &amp;&amp; $if_none_match == $etag) || (!$if_none_match)) &amp;&amp;
    ($if_modified_since &amp;&amp; $if_modified_since == $tsstring)) {
    header('HTTP/1.1 304 Not Modified');
    exit();
} else {
    header("Last-Modified: $tsstring");
    header("ETag: \"{$etag}\"");
}</code>

Wenn der If-None-Match-Header mit dem ETag übereinstimmt oder wenn der If-Modified-Since-Header mit dem Last-Modified-Datum übereinstimmt, wird eine 304 Not Modified-Antwort ausgegeben zurückgegeben, was darauf hinweist, dass der zwischengespeicherte Inhalt ausreichend ist. Andernfalls gibt der Server den neuesten Inhalt zurück.

Durch die Implementierung dieser Cache-Header können Sie die Belastung Ihres Webservers erheblich reduzieren und das Benutzererlebnis durch schnellere Seitenladevorgänge verbessern.

Das obige ist der detaillierte Inhalt vonWie kann ich HTTP-Cache-Header mit PHP nutzen, um die Webleistung zu verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn