Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. HTTP
  3. Reference
  4. Headers
  5. ETag

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

View in EnglishAlways switch to English

ETag header

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.

Der HTTP-ETag-(Antwort-Header) ist ein Identifikator für eine spezifische Version einer Ressource.Er ermöglicht esCaches, effizienter zu arbeiten und Bandbreite zu sparen, da ein Webserver keine vollständige Antwort erneut senden muss, wenn sich der Inhalt nicht geändert hat.Zusätzlich helfen ETags, gleichzeitige Aktualisierungen einer Ressource zu verhindern, die sich gegenseitig überschreiben ("mid-air collisions").

Wenn sich die Ressource an einer gegebenen URL ändert,muss ein neuerETag-Wert generiert werden.Ein Vergleich dieser kann bestimmen, ob zwei Darstellungen einer Ressource identisch sind.

Header-TypAntwort-Header,Repräsentations-Header
Verbotener Anfrage-HeaderNein

Syntax

http
ETag: W/"<etag_value>"ETag: "<etag_value>"

Direktiven

W/Optional

W/ (Groß- und Kleinschreibung beachten) zeigt an, dass einschwacher Validator verwendet wird.Schwache ETags sind einfach zu generieren, aber bei Vergleichen weit weniger nützlich.Starke Validatoren sind ideal für Vergleiche, können aber sehr schwer effizient zu generieren sein.SchwacheETag-Werte von zwei Darstellungen derselben Ressourcen könnten semantisch gleichwertig, aber nicht byteweise identisch sein.Das bedeutet, dass schwache ETags das Caching verhindern, wennByte-Range-Anfragen verwendet werden, während starke ETags bedeuten, dass Bereichsanfragen immer noch gecacht werden können.

<etag_value>

Entität-Tag, das die angeforderte Ressource eindeutig darstellt. Es handelt sich um eine Zeichenkette ausASCII-Zeichen, die in Anführungszeichen stehen, wie z.B."675af34563dc-tr34".Die Methode zur Generierung vonETag-Werten ist nicht spezifiziert.Typischerweise ist der ETag-Wert ein Hash des Inhalts, ein Hash des letzten Änderungszeitpunkts oder einfach eine Versionsnummer.Ein Beispiel ist eine Wiki-Engine, die einen hexadezimalen Hash des Inhalts des Dokumentationsartikels verwenden kann.

Beispiele

http
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"ETag: W/"0815"

Vermeidung von Kollisionen bei simultanen Bearbeitungen

Mit Hilfe derETag- undIf-Match-Header können Sie Kollisionen bei simultanen Bearbeitungen (Konflikte) erkennen.

Zum Beispiel kann beim Bearbeiten eines Wikis der aktuelle Wiki-Inhalt gehasht und in einemETag-Header in der Antwort gespeichert werden:

http
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

Beim Speichern von Änderungen an einer Wiki-Seite (Daten werden gesendet) enthält diePOST-Anfrage denIf-Match-Header mit denETag-Werten, um die Aktualität zu überprüfen.

http
If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"

Wenn die Hashes nicht übereinstimmen, bedeutet dies, dass das Dokument zwischenzeitlich bearbeitet wurde, und ein412 Precondition Failed-Fehler wird ausgelöst.

Caching von unveränderten Ressourcen

Ein weiterer typischer Gebrauch desETag-Headers ist das Caching von unveränderten Ressourcen.Wenn ein Benutzer eine bestimmte URL erneut besucht (die einenETag gesetzt hat) und sieveraltet ist (zu alt, um als verwendbar betrachtet zu werden), wird der Client den Wert seinesETag zusammen mit einemIf-None-Match-Headerfeld senden:

http
If-None-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"

Der Server vergleicht dasETag des Clients (gesendet mitIf-None-Match) mit demETag für seine aktuelle Version der Ressource, und wenn beide Werte übereinstimmen (d.h. die Ressource hat sich nicht geändert), sendet der Server einen304 Not Modified-Status ohne Body zurück, was dem Client mitteilt, dass die zwischengespeicherte Version der Antwort noch gut zu verwenden ist (fresh).

Spezifikationen

Specification
HTTP Semantics
# field.etag

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp