2. Observe オプション (The Observe Option)
Observe オプションには以下のプロパティがあります。その意味は、GET 要求に含まれるか、応答に含まれるかによって異なります。
| No. | C | U | N | R | Name | Format | Length | Default |
|---|---|---|---|---|---|---|---|---|
| 6 | x | - | Observe | uint | 0-3 B | (none) |
- C=Critical, U=Unsafe, N=No-Cache-Key, R=Repeatable
表 1: Observe オプション
GET 要求に含まれる場合、Observe オプションは GET メソッドを拡張し、ターゲットリソースの現在の表現を取得するだけでなく、オプション値に応じてリソースのオブザーバーのリストにエントリを追加または削除するようにサーバーに要求します。リストエントリは、クライアントのエンドポイントと、クライアントが要求で指定したトークンで構成されます。可能な値は次のとおりです。
-
0 (登録): エントリが存在しない場合はリストに追加します。
-
1 (登録解除): エントリが存在する場合はリストから削除します。
Observe オプションは、要求の処理に不可欠ではありません。サーバーがオブザーバーのリストに新しいエントリを追加する意思がないか、できない場合、要求は通常の GET 要求にフォールバックし、応答には Observe オプションが含まれません。
Observe オプションはキャッシュキーの一部ではありません。要求内の Observe オプションで取得されたキャッシュ可能な応答を使用して、Observe オプションのない要求を満たすことができます。逆も同様です。Observe オプションを含む保存された応答を使用して通常の GET 要求を満たす場合、応答が返される前にオプションを削除する必要があります (MUST)。
応答に含まれる場合、Observe オプションはメッセージを通知として識別します。これは、オブザーバーのリストに一致するエントリが存在し、サーバーがリソース状態の変更をクライアントに通知することを意味します。オプション値は、並べ替え検出用のシーケンス番号です (セクション 3.4 および 4.4 を参照)。
Observe オプションの値は、可変長のバイト数を使用したネットワークバイトオーダーの符号なし整数としてエンコードされます ('uint' オプション形式)。RFC 7252 [RFC7252] のセクション 3.2 を参照してください。