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

7. Discovery (発見)

7.1. Service Discovery (サービス発見)

CoAPサーバーが提供するサービスを発見する一部として、クライアントはサーバーが使用するエンドポイントについて学習しなければなりません。

クライアントは、サーバーの名前空間内のリソースを参照するURIを (知っているか) 学習することによってサーバーを発見する可能性があります。あるいは、クライアントはマルチキャストCoAP (Section 8を参照) と"All CoAP Nodes"マルチキャストアドレスを使用してCoAPサーバーを見つけることができます。

"coap"または"coaps" URI内のポートサブコンポーネントがCoAPサーバーが配置されているUDPポートを示していない限り、サーバーはデフォルトポートで到達可能であると想定されます。

リソース発見サービスを提供するサーバーは、CoAPデフォルトポート番号5683 (リソース発見およびアクセスを提供するリソース用) をサポートしなければならず、DTLS保護されたCoAPのデフォルトポート番号5684をサポートすべきです。さらに、他のエンドポイントが、たとえば動的ポート空間内の他のポートでホストされる場合があります。

実装ノート: CoAPサーバーが6LoWPANノードによってホストされている場合、[RFC4944]および[RFC6282]で定義されている61616-61631の範囲の圧縮UDPポート空間内のポート番号もサポートすると、ヘッダー圧縮効率が向上します。(UDPポートがデフォルトポートと異なるため、デフォルトポートのサーバーとは異なるエンドポイントであることに注意してください。)

7.2. Resource Discovery (リソース発見)

CoAPエンドポイントが提供するリソースの発見は、ループ内に人間がおらず、静的インターフェースが脆弱性をもたらすマシン対マシンアプリケーションにおいて非常に重要です。CoRE環境での相互運用性を最大化するために、CoAPエンドポイントは[RFC6690]で説明されている発見可能なリソースのCoREリンク形式をサポートし、デフォルトの発見パス"/.well-known/core"で利用可能にすべきです。同様に、手動設定が望まれない限り、ホストはHTTPサーバー上でWebリンキング [RFC5988] を提供し、同じデフォルトの発見パスで利用可能にすべきです。どのリソースを発見可能にするか (ある場合) を決定するのはサーバー次第です。

7.2.1. 'ct' Attribute ('ct'属性)

このセクションでは、[RFC6690]と一緒に使用するための新しいWebリンキング [RFC5988] 属性を定義します。コンテンツフォーマットコード"ct"属性は、このリソースが返すコンテンツフォーマットに関するヒントを提供します。これはヒントにすぎず、実際にリソースの表現を要求することによって取得されたCoAP応答のContent-Formatオプションを上書きしないことに注意してください。値は、10進ASCII整数としてのCoAP識別子コード形式であり、0-65535の範囲 (16ビット符号なし整数) でなければなりません。たとえば、"application/xml"は"ct=41"として示されます。Content-Formatコード属性が存在しない場合、タイプについて何も仮定できません。Content-Formatコード属性には、スペース区切りのContent-Formatコードのシーケンスが含まれる場合があり、複数のContent-Formatが利用可能であることを示します。属性値の構文は、図12の生成"ct-value"で要約されており、"cardinal"、"SP"、および"DQUOTE"の定義は[RFC6690]と同じです。

ct-value =  cardinal
/ DQUOTE cardinal *( 1*SP cardinal ) DQUOTE

図 12