Die man zu verwenden : Expire-Header Last-Modified-Headers oder ETags
Bin ich PHP auf Apache, und bin verwirrt darüber, wie zu implementieren server-side caching, um die Website schneller geladen werden kann.
Was ist der Unterschied zwischen den Expires
, Last-Modified
und ETag
Header, und was sollte verwendet werden, in welcher situation?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
Expires
header in Verbindung, aber unabhängig von den beiden anderen. Es ist universell von proxies und browser-caches.Den Unterschied zwischen
ETag
undLast-Modified
Briefmarken ist mehr Semantik. ETags sind undurchsichtig für die Kunden. Es ist in der Regel eine Prüfsumme. In der Erwägung, dass eine Last-Modified-header interpretiert werden kann vom Kunden. Es versteht sich, dass die last modified timestamp arbeitet Linear.Wenn ein browser eine Ressource mit
If-Unmodified-Since
, dann eine Breite Palette von Zeitstempeln in der Vergangenheit entsprechen kann solch ein Zustand. Wenn Ihre Seiten ändern sich Häufig dann eine Last-Modified-Zeitstempel könnte von Vorteil sein.Den ETag-Ansatz, auf der anderen Seite, führt zu Kunden, die sparen Sie eine Letzte Fingerabdruck pro Ressource. (Ich bin mir nicht sicher, ob browser-caches erinnern mehrere ETags). Auf Anfragen, die nur eine oder wenige mögliche
If-None-Match
Token aufgeführt sind. Dies könnte bedeuten, mehr findet. Auch Sie haben für den Vergleich mehrerer Prüfsummen, in der Erwägung, dass mit einem Last-Modified-timestamp haben, könnten Sie einen arithmetischen Vergleich.Den realen nutzen von ETags ist, dass Sie zuverlässig vergleichen Fingerabdrücke. Der Last-Modified-Zeitstempel sind ein wenig vage, da Sie nicht überprüfen, ob der tatsächliche Inhalt der Seite geändert.
Siehe auch:
Expires
undCache-Control
sind "starke caching-Header"Last-Modified
undETag
"die schwachen caching-Header"Ersten der browser prüft
Expires/Cache-Control
um zu bestimmen, ob oder nicht, um eine Anfrage an den Server.Wenn es eine Anfrage zu stellen, schickt
Last-Modified/ETag
in der HTTP-Anforderung. Wenn dieEtag
Wert des Dokuments übereinstimmt, sendet der server einen 304-code anstelle von 200, - und kein Inhalt. Der browser lädt den Inhalt aus dem cache.Empfehle ich, mit einer die starke caching-Header, zusammen mit der schwachen caching-Header.