Last-modified

Was bedeutet last-modified

Last-modified, zu deutsch “zuletzt geändert”, ist ein optionales Datenfeld des HTTP-Headers. Das last-modified Headerfeld enthält einen Zeitstempel, der dem Client bei einer Anfrage an einen Server mitteilt, wann das abgerufene Dokument zum letzten Mal geändert wurde.

Ergibt der Zeitstempel, dass das Dokument seit dem letzten Abruf zum Beispiel durch den Browser eines Users nicht geändert wurde, kann der Browser das Dokument oder die Webseite aus dem eigenen Cache laden.

Das last-modified Headerfeld wird häufig zusammen mit dem if-modified-since Headerfeld verwendet. If-modified-since ist ein Request-Headerfeld, das ebenfalls ein Datum enthält. If-modified-since wird von Suchmaschinen-Crawlern an Server gesendet, um dem Server mitzuteilen, dass dieser das angeforderte Dokument nur ausliefern muss, falls es nach dem Datum im if-modified-since Feld geändert wurde. Hat keine Änderung stattgefunden, ist eine erneute Auslieferung nicht erforderlich.

Funktionsweise des last-modified HTTP-Headerfeldes

Das HTTP-Headerfeld last-modified wird vom Server gesendet, um das Datum der letzten Änderung der angeforderten Ressource anzugeben. Das Feld enthält einen Zeitstempel (time and date) zum Beispiel mit der Angabe:

last-modified: Di, 03 Okt 2017 07:45:20 GMT

Der Header If-modified-since wird vom Browser gesendet, um das Datum der letzten Änderung der zwischengespeicherten Kopie der Ressource anzugeben. Der Zeitstempel (time and date) dieses Headers ist identisch mit dem Wert des zuvor empfangenen Headers last-modified. Zum Beispiel:

if-modified-since: Di., 03. Okt. 2017 07:45:20 GMT

Der Zweck der Verwendung der beiden Header besteht darin, eine unnötige Übertragung einer Ressource zu vermeiden, wenn sie seit dem letzten Zugriff nicht geändert wurde, wodurch Bandbreite eingespart und die Leistung verbessert wird.

Der Server empfängt eine normale HTTP-Anforderung für eine bestimmte Ressource. Die Serverseite bereitet die Antwort vor. Die serverseitige Logik möchte, dass der Browser die Ressource lokal zwischenspeichert. Standardmäßig speichern alle Browser immer die Ressourcen, so dass kein spezieller Header in der Antwort benötigt wird.

Der Server kann auch explizit ‘Cache-Control’ Anweisungen senden. Cache Control ist eine optionale Kopfzeile. Ohne Cache Control erfolgt der Abruf der Ressource über einen Link oder die Eingabe in die Adressleiste direkt aus dem Cache des Browsers. Die Anweisung no-cache zwingt dazu, die Cache-Gültigkeit zu überprüfen, indem die Anfrage an den Ursprungsserver gesendet wird, bevor die zwischengespeicherte Kopie verwendet wird.

Der Server sendet die Antwort auf die Anfrage des Clients mit den Headern, dem Dokumentinhalt und dem Statuscode 200. Der Browser zeigt die Ressource an und speichert gleichzeitig die Ressource zusammen mit den Header-Informationen. Später erfolgt eine weitere Anfrage des gleichen Browsers mit dem Header:

if-modified-since: Di., 03. Okt. 2017 07:45:20 GMT

Beim Empfang der Anforderung für die Ressource zusammen mit dem Header if-modified-since prüft die serverseitige Logik, ob der Client eine neue Kopie der Ressource benötigt, indem das aktuelle Änderungsdatum der Ressource mit demjenigen Datum verglichen wird, das mit dem if-modified-since Headerfeld empfangen wurde.
Wenn das if-modified-since date der Anfrage dasselbe ist wie das aktuelle Änderungsdatum der Ressource, sendet der Server den Statuscode 304 (Not Modified) und der Browser verwendet eine zwischengespeicherte Kopie des Dokuments.

Wenn der if-modified-since Wert der Anforderung älter ist als das aktuelle Änderungsdatum, sendet der Server das angeforderte Dokument zusammen mit dem Statuscode 200 zurück. Der Header last-modified mit dem neuen Datum ist ebenfalls in der Antwort enthalten. Der Browser verwendet das neu ausgelieferte Dokument und aktualisiert seinen Cache mit den neuen Daten.

Genaue Bedeutung des last-modified Headerfeldes

Die genaue Bedeutung des last-modified Headerfeldes hängt von der Implementierung des Ursprungsservers und der Art der ursprünglichen Ressource ab. Bei Dateien kann es sich nur um die zuletzt geänderte Zeit des Dateisystems handeln. Entitäten mit dynamisch eingeschlossenen Teilen könnten die jüngste der letzten Änderungszeiten für die einzelnen Komponenten mitteilen.

Bei Datenbank-Gateways kann es sich um den Zeitstempel für die letzte Aktualisierung des Datensatzes handeln. Virtuellen Objekten könnten den letzten internen Statuswechsel anzeigen.
Sinnvoll ist die Verwendung des Headerfeldes insbesondere bei Inhalten, die dynamisch erzeugt werden. Bei Produktseiten mit wechselnden Inhalten oder Foren kann die Verwendung des Headerfeldes die Zahl der Verbindungen zwischen Client und Server reduzieren und für eine Entlastung des Servers sorgen.

Bedeutung des last-modified Headerfeldes für die Suchmaschinenoptimierung

Das Headerfeld kann in erster Linie für die Verbesserung der Webseitenperformance genutzt werden. Wenn anhand des Zeitstempels im Header erkennbar ist, dass die im Cache des Browsers gespeicherte Version aktuell ist, kann die Webseite aus dem Cache geladen werden. Dadurch verkürzt sich die Ladezeit erheblich. Bei bestimmten Webseiteninhalten kann das last-modified Headerfeld zudem nützliche und für den ein oder anderen Besucher wichtige Informationen bezüglich der Aktualität des Inhalts liefern.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte