2. L'option Observe (The Observe Option)
L'option Observe a les propriétés suivantes. Sa signification dépend de son inclusion dans une requête GET ou dans une réponse.
| No. | C | U | N | R | Nom | Format | Longueur | Défaut |
|---|---|---|---|---|---|---|---|---|
| 6 | x | - | Observe | uint | 0-3 o | (aucun) |
- C=Critical, U=Unsafe, N=No-Cache-Key, R=Repeatable
Tableau 1 : L'option Observe
Lorsqu'elle est incluse dans une requête GET, l'option Observe étend la méthode GET de sorte qu'elle ne récupère pas seulement une représentation actuelle de la ressource cible, mais demande également au serveur d'ajouter ou de supprimer une entrée dans la liste des observateurs de la ressource en fonction de la valeur de l'option. L'entrée de liste se compose du point de terminaison du client et du jeton spécifié par le client dans la requête. Les valeurs possibles sont :
-
0 (enregistrer) ajoute l'entrée à la liste, si elle n'est pas présente ;
-
1 (désenregistrer) supprime l'entrée de la liste, si elle est présente.
L'option Observe n'est pas critique pour le traitement de la requête. Si le serveur ne veut pas ou ne peut pas ajouter une nouvelle entrée à la liste des observateurs, la requête retombe alors sur une requête GET normale et la réponse n'inclut pas l'option Observe.
L'option Observe ne fait pas partie de la clé de cache (Cache-Key) : une réponse pouvant être mise en cache obtenue avec une option Observe dans la requête peut être utilisée pour satisfaire une requête sans option Observe, et vice versa. Lorsqu'une réponse stockée avec une option Observe est utilisée pour satisfaire une requête GET normale, l'option DOIT être supprimée avant que la réponse ne soit renvoyée.
Lorsqu'elle est incluse dans une réponse, l'option Observe identifie le message comme une notification. Cela implique qu'une entrée correspondante existe dans la liste des observateurs et que le serveur notifiera le client des changements de l'état de la ressource. La valeur de l'option est un numéro de séquence pour la détection de réorganisation (voir les sections 3.4 et 4.4).
La valeur de l'option Observe est codée sous la forme d'un entier non signé dans l'ordre des octets du réseau en utilisant un nombre variable d'octets (format d'option 'uint') ; voir la section 3.2 de la RFC 7252 [RFC7252].