Ein ETag ist eine Zeichenkette, die der Server einer Antwort hinzufügt und die die jeweilige Version der jeweiligen Darstellung identifiziert. Er ist undurchsichtig: Es kann sich um einen Hashwert, eine Versionsnummer oder einen Zeitstempel handeln, und ein Client darf ihn niemals interpretieren – er muss ihn lediglich zurücksenden.
Beim Lesen sendet der Client den ETag im If-None-Match-Header zurück. Stimmt er noch überein, antwortet der Server mit dem Statuscode 304 Not Modified ohne Antworttext, und der Client verwendet seine zwischengespeicherte Kopie. Beim Schreiben sendet der Client den ETag im If-Match-Header. Stimmt er nicht mehr überein, antwortet der Server mit dem Statuscode 412 Precondition Failed, und der Schreibvorgang wird abgelehnt. Derselbe Wert, zwei Header, zwei völlig unterschiedliche Aufgaben – die eine spart Bandbreite, die andere verhindert Datenverlust.
Ein ETag-Fehler bedeutet, dass ein Fehler aufgetreten ist. Der Fehlercode 412 zeigt an, dass die Ressource seit Ihrem letzten Lesevorgang geändert wurde und Ihr Schreibvorgang diese Änderung unbemerkt überschrieben hätte. Die korrekte Vorgehensweise ist, die Ressource erneut zu lesen, die Daten abzugleichen und es mit dem neuen ETag erneut zu versuchen – nicht mit dem alten, was immer wieder zum gleichen Fehler führen wird.
Die Endpunkte der Fußball- und FIBA-Tabellen beantworten bedingte Lesevorgänge mit 304. Die Schreibvorgänge für Charaktere, Helden und Filme akzeptieren If-Match und erzeugen einen 412-Fehler, wenn die Version veraltet ist.
Diese Seite auf Englisch lesen
Alle Glossarbegriffe · Testtechniken · Alle 39 Mock-REST-APIs
Zuletzt aktualisiert