2. Die Observe-Option (The Observe Option)
Die Observe-Option hat die folgenden Eigenschaften. Ihre Bedeutung hängt davon ab, ob sie in einer GET-Anfrage oder in einer Antwort enthalten ist.
| Nr. | C | U | N | R | Name | Format | Länge | Standard |
|---|---|---|---|---|---|---|---|---|
| 6 | x | - | Observe | uint | 0-3 B | (keiner) |
- C=Critical (Kritisch), U=Unsafe (Unsicher), N=No-Cache-Key (Kein-Cache-Schlüssel), R=Repeatable (Wiederholbar)
Tabelle 1: Die Observe-Option
Wenn sie in einer GET-Anfrage enthalten ist, erweitert die Observe-Option die GET-Methode, sodass sie nicht nur eine aktuelle Repräsentation der Zielressource abruft, sondern auch den Server auffordert, abhängig vom Optionswert einen Eintrag in der Liste der Beobachter der Ressource hinzuzufügen oder zu entfernen. Der Listeneintrag besteht aus dem Client-Endpunkt und dem vom Client in der Anfrage angegebenen Token. Mögliche Werte sind:
-
0 (registrieren) fügt den Eintrag zur Liste hinzu, falls nicht vorhanden;
-
1 (abmelden) entfernt den Eintrag aus der Liste, falls vorhanden.
Die Observe-Option ist für die Verarbeitung der Anfrage nicht kritisch. Wenn der Server nicht bereit oder in der Lage ist, einen neuen Eintrag zur Liste der Beobachter hinzuzufügen, fällt die Anfrage auf eine normale GET-Anfrage zurück und die Antwort enthält die Observe-Option nicht.
Die Observe-Option ist nicht Teil des Cache-Key: Eine mit einer Observe-Option in der Anfrage erhaltene cachebare Antwort kann verwendet werden, um eine Anfrage ohne eine Observe-Option zu erfüllen, und umgekehrt. Wenn eine gespeicherte Antwort mit einer Observe-Option verwendet wird, um eine normale GET-Anfrage zu erfüllen, MUSS die Option entfernt werden, bevor die Antwort zurückgegeben wird.
Wenn sie in einer Antwort enthalten ist, identifiziert die Observe-Option die Nachricht als Benachrichtigung. Dies impliziert, dass ein passender Eintrag in der Liste der Beobachter existiert und dass der Server den Client über Änderungen des Ressourcenzustands benachrichtigen wird. Der Optionswert ist eine Sequenznummer zur Erkennung von Umordnungen (siehe Abschnitte 3.4 und 4.4).
Der Wert der Observe-Option wird als vorzeichenlose Ganzzahl in Netzwerk-Byte-Reihenfolge unter Verwendung einer variablen Anzahl von Bytes codiert ('uint'-Optionsformat); siehe Abschnitt 3.2 von RFC 7252 [RFC7252].