304

Not Modified

Offiziell
Die Ressource muss nicht neu übertragen werden, da keine Änderung stattgefunden haben

Spezifikation von dem HTTP statuscode 304

Der Statuscode 304 Not Modified zeigt an, dass eine bedingte GET- oder HEAD-Anfrage eingegangen ist und zu einer 200 (OK)-Antwort geführt hätte, wenn die Bedingung nicht als falsch bewertet worden wäre. Mit anderen Worten, der Server braucht keine Darstellung der Zielressource zu übermitteln, da die Anfrage anzeigt, dass der Client, der die bedingte Anfrage gestellt hat, bereits über eine gültige Darstellung verfügt; der Server leitet den Client daher um, damit er diese gespeicherte Darstellung verwendet, als wäre sie der Inhalt einer 200-(OK)-Antwort.

Der Server, der eine 304 Not Modified-Antwort erzeugt, MUSS eines der folgenden Header-Felder erzeugen, die in einer 200 (OK)-Antwort auf dieselbe Anfrage gesendet worden wären:

  1. Content-Location, Date, ETag und Vary
  2. Cache-Control und Expires (siehe [CACHING])

Da das Ziel einer 304 Not Modified-Antwort darin besteht, die Informationsübertragung zu minimieren, wenn der Empfänger bereits eine oder mehrere Darstellungen im Cache hat, SOLLTE ein Absender KEINE anderen Darstellungsmetadaten als die oben aufgeführten Felder generieren, es sei denn, diese Metadaten existieren zum Zweck der Steuerung von Cache-Aktualisierungen (z.g., Last-Modified könnte nützlich sein, wenn die Antwort kein ETag-Feld hat).

Die Anforderungen an einen Cache, der eine 304 Not Modified-Antwort erhält, sind in Abschnitt 4.3.4 von [CACHING] definiert. Wenn die bedingte Anfrage von einem ausgehenden Client stammt, z.B. einem User-Agent mit eigenem Cache, der einen bedingten GET an einen gemeinsam genutzten Proxy sendet, dann SOLLTE der Proxy die 304 Not Modified-Antwort an diesen Client weiterleiten.

Eine 304 Not Modified-Antwort wird durch das Ende des Header-Abschnitts beendet; sie kann keinen Inhalt oder Trailer enthalten.

Quelle / Zitat von: Spezifiziert wird der 304 Not Modified HTTP Status Code durch Abschnitt 15.4.5 von RFC9110

HTTP-Protokoll

in Arbeit befindliche Maßnahmen

Wie kann man mit PHP einen 304-Statuscode werfen?

Um auf einer Webseite den HTTP Status Code 304 zu werfen, kann die PHP Funktion http_response_code benutzt werden. Die Syntax sieht wie folgt aus: http_response_code(304) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Teste den 304 HTTP Status Code

Um die HTTP Status Code (in diesem Fall 304 Not Modified) und weitere Informationen clientseitig anzeigen zu können, muss die Entwicklungskonsole mit F12 geöffnet werden. Im Anschluss muss zu der Karteikarte "Netzwerk" navigiert werden. Jetzt kann die Seite geöffnet werden, im Netzwerktab sollte die Webseite (Beispiel index.php) zu sehen sein. Diese muss ausgewählt werden und im Anschluss der Bereich Herder gewählt werden. Hier sieht der Nutzer dann folgendes Ergebnis:

Statuscode 304 Not Modified
Überblick
URL: https://http-statuscode.com/errorCodeExample.php?code=304
Status: 304 Not Modified
Diese: Network
IP-Adresse: XX.XX.XX.XX
Statuscode 304 Not Modified

Browser-Kompatibilität des 304 Statuscode

Chrome Yes
Edge Yes
Firefox Yes
Opera Yes
Safari Yes
Chrome Android Yes
Firefox for Android Yes
Opera Android Yes
Safari on iOS Yes
Internet Yes
WebView Android Yes

Konstanten in Programmiersprachen

http.StatusNotModified
Response::HTTP_NOT_MODIFIED
:not_modified

Blog Artikel

Caching und HTTP-Statuscodes: Optimierung der Web-Performance durch intelligentes Caching

Die Web-Performance und die daraus resultierende Benutzererfahrung sind zentrale Aspekte für den Erfolg jeder Website. Ein maßgeblicher Faktor, der diese Performance beeinflusst, sind die HTTP-Stat...

Autor: Tony Brüser
Autor: Tony Brüser

Tony Brüser ist ein begeisterter Webentwickler mit einer Vorliebe für HTTP Statuscodes.

LinkedInGitHub