Heim  >  Artikel  >  Backend-Entwicklung  >  HTTP-Caching-Bibliothek in PHP8.0: PSR-7

HTTP-Caching-Bibliothek in PHP8.0: PSR-7

王林
王林Original
2023-05-14 08:48:201157Durchsuche

Da Webanwendungen immer länger laufen, werden Serverleistung und Datenübertragungsgeschwindigkeit zu immer größeren Problemen. HTTP-Caching ist eine Möglichkeit, dieses Problem zu lösen. Durch das Caching häufig verwendeter Ressourcen auf der Clientseite können Anwendungen schneller auf Anfragen reagieren und die Belastung des Servers verringern. Als Webentwicklungssprache verfügt PHP 8.0 auch über eine eigene Lösung für den Umgang mit HTTP-Caching, nämlich PSR-7.

PSR-7 ist ein PHP-Standard, der für HTTP-Nachrichten entwickelt wurde und eine einheitliche Schnittstelle zum Erstellen und Verarbeiten von HTTP-Anforderungs- und Antwortnachrichten bietet. Es definiert die Grundkomponenten einer HTTP-Nachricht (z. B. HTTP-Header, Anforderungs-URI, HTTP-Methode, HTTP-Body) und wie diese erstellt, serialisiert und analysiert werden.

Im Fall des HTTP-Cachings besteht eine wichtige Rolle von PSR-7 darin, dass es HTTP-Nachrichtenheader standardisiert, die den Standard zur Steuerung des Cachings darstellen. Benutzeragenten können Header-Informationen wie Cache-Control verwenden, um das Caching-Verhalten zu steuern. Daher ist die Verwendung von PSR-7 von entscheidender Bedeutung, wenn wir ein effizientes HTTP-Caching erreichen wollen.

Im Folgenden sind einige HTTP-Caching-Lösungen aufgeführt, die PSR-7 bieten kann:

1.ETag-Cache

ETag-Cache ist ein Entity-Tag-Cache. Wenn ein Client eine Ressource anfordert, wird dem Antwortheader ein ETag hinzugefügt, der vom Client gespeichert und bei der nächsten Anforderung derselben Ressource an den Server zurückgesendet wird. Der Server prüft, ob das ETag des Clients mit der serverseitigen Ressource übereinstimmt. Wenn dies der Fall ist, gibt der Server einen Antwortheader mit dem Antwortcode 304 Not Modified zurück und extrahiert die Ressourcen aus dem Cache des Clients, wodurch eine wiederholte Übertragung von Ressourcen vermieden und die Belastung des Servers verringert wird.

ETag-Caching kann mit PSR-7 einfach implementiert werden. Durch das Hinzufügen eines ETag-Headers zur Antwortnachricht kann das ETag für die nächste Anfrage problemlos an den Client zurückgesendet werden. Der Server verwendet den ETag-Wert zum Vergleich. Wenn die Werte gleich sind, wird die Ressource nicht mehr gesendet, sondern eine 304 Not Modified-Antwort. Hier ist ein Beispiel:

$response = new Response();
$response = $response

->withHeader('ETag', 'MyETagValue');
  1. Last-Modified Cache#🎜🎜 #
Last-Modified-Cache ist ein Entitäts-Tag-Cache. Der Server fügt dem Header der Antwortnachricht einen Last-Modified-Header hinzu, dessen Wert der Zeitpunkt der letzten Änderung der angeforderten Ressource ist. Wenn der Client das nächste Mal dieselbe Ressource anfordert, sendet er die Header-Informationen „Last-Modified“ im Datums- und Uhrzeitformat zurück an den Server. Der Server prüft, ob es sich bei diesen Header-Informationen um den Zeitpunkt der letzten Änderung der Ressource handelt. Wenn dies der Fall ist, gibt der Server einen Antwortheader mit dem Antwortcode „304 Not Modified“ zurück und ruft die Ressource aus dem Cache des Clients ab, um die Belastung des Servers zu verringern.

Mit psr-7 können Sie auch das Last-Modified-Caching problemlos implementieren. Codebeispiel:

$response = new Response();

$response = $response

->withHeader('Last-Modified', 'LastModifiedDate');

    Cache-Control-Cache-Strategie
Cache-Steuerung Die Cache-Strategie ist eine Methode, die im Header der Antwortnachricht festgelegt wird, um die Caching-Methode zu steuern. Es reduziert die Anfragen des Clients und reduziert dadurch die Belastung des Servers. Die Cache-Control-Header-Informationen haben die folgenden Typen:

    max-age: Die maximale Zeit für das Caching.
  • no-cache: Kann zwischengespeichert werden, aber jede Verwendung erfordert eine gültige Verifizierung.
  • no-store: sollte nicht zwischengespeichert werden.
  • privat/öffentlich: Cache ist nur für Privatkunden/gemeinsam nutzbar.
  • muss erneut validiert werden: Nach Ablauf ist eine erneute Überprüfung erforderlich.
  • stale-while-revalidate: Nach Ablauf der Cache-Zeit werden alte Daten zurückgegeben, während neue Daten abgerufen werden.
  • stale-if-error: Im Falle einer Netzwerkanomalie wird der Cache ebenfalls zurückgegeben, wenn ein Cache vorhanden ist.
Das Folgende ist ein Beispiel für die Implementierung der Cache-Control-Cache-Strategie durch PSR-7. Fügen Sie einfach die erforderlichen Informationen im Antwortheader hinzu:

$response = new Response();

$response = $response

->withHeader('Cache-Control', 'max-age=3600');

Summary#🎜🎜 ## 🎜🎜#PSR-7 bietet eine standardisierte Lösung zum Erstellen und Verarbeiten von HTTP-Anforderungs- und Antwortnachrichten, die für die Erzielung eines effizienten HTTP-Cachings von entscheidender Bedeutung ist. Mit PSR-7 können Sie problemlos ETag-Caching-, Last-Modified-Caching- und Cache-Control-Caching-Strategien implementieren. Wenn Sie eine Webanwendung mit PHP 8.0 erstellen und effizientes HTTP-Caching implementieren müssen, probieren Sie PSR-7 aus.

Das obige ist der detaillierte Inhalt vonHTTP-Caching-Bibliothek in PHP8.0: PSR-7. 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