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');
$response = $response
->withHeader('Last-Modified', 'LastModifiedDate');
$response = $response
->withHeader('Cache-Control', 'max-age=3600');
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!