1. Web
  2. HTTP
  3. Reference
  4. HTTP-Antwortstatuscodes
  5. 304 Not Modified

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

304 Not Modified

Der HTTP-Statuscode 304 Not Modified Umleitungsantwort zeigt an, dass es nicht notwendig ist, die angeforderten Ressourcen erneut zu übertragen.

Dieser Antwortcode wird gesendet, wenn die Anfrage eine bedingte GET oder HEAD Anfrage mit einem If-None-Match oder einem If-Modified-Since Header ist und die Bedingung als 'false' bewertet wird. Es bestätigt, dass die vom Client zwischengespeicherte Ressource weiterhin gültig ist und dass der Server eine 200 OK Antwort mit der Ressource gesendet hätte, wenn die Bedingung als 'true' bewertet worden wäre. Weitere Informationen finden Sie im HTTP-Caching.

Die Antwort darf keinen Body enthalten und muss die Header beinhalten, die in einer äquivalenten 200 Antwort gesendet worden wären, wie z.B.:

Hinweis: Viele Netzwerkpanels von Entwicklerwerkzeugen von Browsern erzeugen überflüssige Anfragen, die zu 304 Antworten führen, sodass der Zugriff auf den lokalen Cache für Entwickler sichtbar ist.

Status

http
304 Not Modified

Beispiele

304 Antwort auf bedingte Anfragen

Die folgenden Beispiele zeigen GET Anfragen, die mit curl unter Verwendung von bedingten Anfrage-Headern gemacht werden. Das --http1.1 Flag wird verwendet, um das HTTP/1.1-Protokoll der Lesbarkeit wegen zu erzwingen.

Die erste Anfrage verwendet eine If-Modified-Since Bedingung mit einem zukünftigen Datum, dem 21. November 2050. Dies muss als false bewertet werden, da die Ressource nicht nach einem Zeitpunkt aktualisiert worden sein kann, der noch nicht eingetreten ist:

bash
curl --http1.1 -I --header 'If-Modified-Since: 2050年11月21日 08:00:00 GMT' \
 https://developer.mozilla.org/en-US/

Dies führt zur folgenden HTTP-Anfrage:

http
GET /en-US/ HTTP/1.1
Host: developer.mozilla.org
User-Agent: curl/8.7.1
Accept: */*
If-Modified-Since: 2050年11月21日 08:00:00 GMT

Die Antwort wäre 200 OK mit der aktuellen Version der Ressource, wenn die Ressource nach dem Zeitstempel im If-Modified-Since Header aktualisiert worden wäre. Stattdessen erhalten wir eine 304 Antwort, die die Header ETag, Age und Expires enthält, die uns mitteilen, dass unsere zwischengespeicherte Version der Ressource weiterhin aktuell ist:

http
HTTP/1.1 304 Not Modified
Date: 2024年8月28日 09:52:35 GMT
Expires: 2024年8月28日 10:01:53 GMT
Age: 3279
ETag: "b20a0973b226eeea30362acb81f9e0b3"
Cache-Control: public, max-age=3600
Vary: Accept-Encoding
X-cache: hit
Alt-Svc: clear

Führen Sie nun einen weiteren curl Befehl mit dem etag Wert aus der vorherigen Antwort unter Verwendung der If-None-Match Bedingung aus (da dieser etag die aktuelle Version der Ressource auf dem Server ist, erwarten wir eine 304 Not Modified Antwort):

bash
curl --http1.1 -I --header 'If-None-Match: "b20a0973b226eeea30362acb81f9e0b3"' \
 https://developer.mozilla.org/en-US/

Dies führt zur folgenden HTTP-Anfrage:

http
GET /en-US/ HTTP/1.1
Host: developer.mozilla.org
User-Agent: curl/8.7.1
Accept: */*
If-None-Match: "b20a0973b226eeea30362acb81f9e0b3"

Da der etag Wert zum Zeitpunkt der Anfrage übereinstimmt, schlägt das Entity-Tag die Bedingung fehl, und eine 304 Antwort wird zurückgegeben:

http
HTTP/1.1 304 Not Modified
Date: 2024年8月28日 10:36:35 GMT
Expires: 2024年8月28日 11:02:17 GMT
Age: 662
ETag: "b20a0973b226eeea30362acb81f9e0b3"
Cache-Control: public, max-age=3600
Vary: Accept-Encoding
X-cache: hit
Alt-Svc: clear

Spezifikationen

Spezifikation
HTTP Semantics
# status.304

Kompatibilitätshinweise

Das Verhalten des Browsers unterscheidet sich, wenn diese Antwort fälschlicherweise einen Body bei persistenten Verbindungen enthält. Weitere Einzelheiten finden Sie unter 204 No Content.

Siehe auch

Help improve MDN

Erfahren Sie, wie Sie beitragen können Diese Seite wurde automatisch aus dem Englischen übersetzt.

AltStyle によって変換されたページ (->オリジナル) /