304
Not Modified
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:
- Content-Location, Date, ETag und Vary
- 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
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:
URL: https://http-statuscode.com/errorCodeExample.php?code=304
Status: 304 Not Modified
Diese: Network
IP-Adresse: XX.XX.XX.XX
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
Externe Links mit weiteren Informationen zum HTTP Status Code 304:
Unterhaltsame Memes zum HTTP Statuscode 304
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...