Statuscode 304 Not Modified

Was bedeutet 304 Not Modified?

Es handelt sich bei 304 Not Modified um einen HTTP-Statuscode, der an den Client zurückgegeben wird, wenn die zwischengespeicherte Kopie einer bestimmten Datei mit dem Server aktuell ist. Wenn ein Client, z.B. ein Browser, etwas im Cache speichert, behält es auch den vom Server gesendeten und zuletzt geänderten Header bei. Dieser Header gibt dem Browser das Datum und die Uhrzeit an, an dem die Datei zuletzt geändert wurde. Wenn erneut eine Anfrage vom Browser für dieselbe Datei erfolgt, wird der Header, falls verändert, an den Server gesendet. Wenn dieser Wert und der aktuelle des Servers für diese Datei identisch sind, sendet der Server den Statuscode 304 zurück.

Verwendung von “If Modified Since” und “If None Match”

Die Verwendung des Headers ,,if modified since” ist nicht die einzige Möglichkeit zu bestimmen, ob der Server mit einem 304 Not Modified Code antworten soll. Es gibt eine andere Kopfzeile, die verwendet werden kann, wenn keine Kopfzeile übereinstimmt. Beide Optionen werden im folgenden Abschnitt näher erläutert.

If Modified Since

Sobald der Server eine Anfrage von einem Client erhält, prüft er, ob der Header if modified since vorhanden ist. Ist dies nicht der Fall, wird der Server den neuesten Inhalt an den Client senden, da dies das erste Mal angefordert wird. Wenn der Header if modified since vorhanden ist, prüft der Server andererseits, ob die Datei seit dem letzten Zugriff des Browsers auf die Datei bearbeitet wurde. Wenn dies der Fall ist, gibt der Server eine neue Kopie an den Client zurück, wenn nicht, antwortet der Server mit 304 Not Modiefied und der Browser kann den Inhalt aus seinem Cache abrufen. Der Arbeitsablauf für die Verwendung, wenn keine Übereinstimmung gefunden wird, ist ziemlich ähnlich zu der, wenn sie geändert wurde.

If None Match

Wenn die Option “if none match” verwendet wird, um festzustellen, ob eine Datei geändert wurde, wird ein ETag erstellt. Ein ETag besteht normalerweise aus Text und Zahlen, die vom Server generiert werden. Sobald der Client eine Datei angefordert hat, erhält er einen ETag, der angibt, dass der Browser in Verbindung mit der Header-Datei für keine weiteren Übereinstimmungen verwenden wird. Da der Server bei jeder Änderung der Datei eine neue generiert und den vorherigen ETag-Wert beibehält, überprüft er, ob dieser mit dem eigenen übereinstimmt. Ist dies nicht der Fall, sendet der Server eine neue Kopie der Datei, und wenn doch, wird der Header 304 Not Modified an den Client zurückgegeben.

Fazit

Beide Optionen sind geeignete Möglichkeiten, um zu bestimmen, ob der Server einen nicht geänderten Statuscode 304 zurückgeben soll oder nicht. Der Header if modified since wird häufig verwendet, um statische Inhalte wie CSS, JS oder Bilder effizienter zu liefern. Die Verwendung des Headers if none match in Verbindung mit ETags kann nützlicher sein, wenn der Inhalt dynamisch ist. Der Statuscode 304 Not Modified ist ein ziemlich einfaches Konzept, das die Fähigkeit nutzt, sowohl Ressourcen als auch Zeit zu sparen.


Sie haben noch Fragen?

Kontaktieren Sie uns

Free Account erstellen


Weitere Inhalte