メインコンテンツまでスキップ

2. Observe オプション (The Observe Option)

Observe オプションには以下のプロパティがあります。その意味は、GET 要求に含まれるか、応答に含まれるかによって異なります。

No.CUNRNameFormatLengthDefault
6x-Observeuint0-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 を参照してください。