2. L'Opzione Observe (The Observe Option)
L'Opzione Observe ha le seguenti proprietà. Il suo significato dipende dal fatto che sia inclusa in una richiesta GET o in una risposta.
| No. | C | U | N | R | Nome | Formato | Lunghezza | Default |
|---|---|---|---|---|---|---|---|---|
| 6 | x | - | Observe | uint | 0-3 B | (nessuno) |
- C=Critical (Critico), U=Unsafe (Insicuro), N=No-Cache-Key (Nessuna-Chiave-Cache), R=Repeatable (Ripetibile)
Tabella 1: L'Opzione Observe
Quando inclusa in una richiesta GET, l'Opzione Observe estende il metodo GET in modo che non solo recuperi una rappresentazione attuale della risorsa di destinazione, ma richieda anche al server di aggiungere o rimuovere una voce nell'elenco degli osservatori della risorsa a seconda del valore dell'opzione. La voce dell'elenco è costituita dall'endpoint del client e dal token specificato dal client nella richiesta. I valori possibili sono:
-
0 (registra) aggiunge la voce all'elenco, se non presente;
-
1 (cancellare) rimuove la voce dall'elenco, se presente.
L'Opzione Observe non è critica per l'elaborazione della richiesta. Se il server non vuole o non può aggiungere una nuova voce all'elenco degli osservatori, la richiesta ricade su una normale richiesta GET e la risposta non include l'Opzione Observe.
L'Opzione Observe non fa parte della Cache-Key: una risposta memorizzabile nella cache ottenuta con un'Opzione Observe nella richiesta può essere utilizzata per soddisfare una richiesta senza un'Opzione Observe, e viceversa. Quando una risposta memorizzata con un'Opzione Observe viene utilizzata per soddisfare una normale richiesta GET, l'opzione DEVE essere rimossa prima che la risposta venga restituita.
Quando inclusa in una risposta, l'Opzione Observe identifica il messaggio come una notifica. Ciò implica che esiste una voce corrispondente nell'elenco degli osservatori e che il server notificherà al client i cambiamenti dello stato della risorsa. Il valore dell'opzione è un numero di sequenza per il rilevamento del riordino (vedere Sezioni 3.4 e 4.4).
Il valore dell'Opzione Observe è codificato come un intero senza segno in ordine di byte di rete utilizzando un numero variabile di byte (formato opzione 'uint'); vedere Sezione 3.2 di RFC 7252 [RFC7252].