If-None-Match
Erlaubt dem Server bei unverändertem Inhalt verifiziert durch ETags
den Statuscode 304 Not Modified als Antwort
Bei GET und HEAD Methoden sendet der Server
die angeforderte Ressource mit dem Status 200 nur dann zurück,
wenn kein ETag vorhanden ist, das mit den angegebenen ETag übereinstimmt.
Bei anderen Methoden wird die Anforderung nur verarbeitet,
wenn das ETag der eventuell vorhandenen Ressource
mit keinem der aufgeführten Werte übereinstimmt.
Wenn die Bedingung für GET und HEAD Methoden fehlschlägt,
muss der Server den HTTP-Statuscode 304 Nicht geändert zurückgeben.
Für Methoden, die serverseitige Änderungen anwenden,
wird der Statuscode 412 Vorbedingung fehlgeschlagen verwendet.
Beachten Sie, dass der Server, der eine 304 Antwort generiert,
eines der folgenden Headerfelder generieren muss,
die in einer 200-Antwort (OK)
auf dieselbe Anforderung gesendet worden wären
Cache-Control, Content-Location, Date, ETag, Expires und Vary.
Der Vergleich mit dem gespeicherten ETag
verwendet den schwachen Vergleichsalgorithmus,
was bedeutet, dass zwei Dateien
nicht nur dann als identisch angesehen werden,
wenn sie Byte zu Byte identisch sind,
sondern auch, wenn der Inhalt äquivalent ist.
werden zwei Seiten,
die sich nur durch das Erstellungsdatum in der Fußzeile unterscheiden,
als identisch betrachtet.
Wenn es in Kombination mit If-Modified-Since verwendet wird,
hat es Vorrang wenn der Server es unterstützt.
Es gibt zwei häufige Anwendungsfälle:
Für GET und HEAD Methoden,
um eine zwischengespeicherte Entität zu aktualisieren,
der ein ETag zugeordnet ist.
Für andere Methoden, insbesondere für PUT,
kann der Wert verwendet werden, um eine Datei zu speichern,
von der nicht bekannt ist, dass sie existiert,
um sicherzustellen, dass zuvor kein weiterer Upload stattgefunden hat,
wodurch die Daten des vorherigen Puts verloren gehen.
Bei diesem Problem handelt es sich um eine Variation des Problems der verlorenen Updates.
ETag
Entitäts-Tags, die die angeforderten Ressourcen eindeutig darstellen.
Sie sind eine Zeichenfolge von ASCII-Zeichen,
die zwischen doppelte Anführungszeichen Like gesetzt werden
und mit dem Präfix versehen werden können, um anzuzeigen,
dass der schwache Vergleichsalgorithmus verwendet werden sollte
Dies ist nutzlos, da nur dieser Algorithmus verwendet wird."675af34563dc-tr34"W/
*
Das * ist ein spezieller Wert, der eine beliebige Ressource darstellt.
Sie sind nur nützlich, wenn eine Ressource hochgeladen wird,
in der Regel mit PUT, um zu überprüfen,
ob bereits eine andere Ressource mit der Identität hochgeladen wurde.
Beispiel:
If-None-Match "737060cd8c284d8af7ad3082f209582d"
If-None-Match "bfc13a64729c4290ef5b2c2730249c88ca92d82d"
If-None-Match W/"67ab43", "54ed21", "7892dd"
If-None-Match *