5 Content-Format描述

CoAP支持多种媒体类型,具体可参考RFC7252 #12.3。从下图的信息可以发现,CoAP协议中关于媒体类型的定义比较简单,未来应该会根据实际情况扩展。

图5.1 Content-Format编号内容

图5.1 Content-Format编号内容

text/plain】 编号为0,表示负载为字符串形式,默认为UTF8编码。

application/link-format】编号为40,CoAP资源发现协议中追加定义,该媒体类型为CoAP协议特有。

application/xml】编号为41,表示负载类型为XML格式。

application/octet-stream】编号为42,表示负载类型为二进制格式。

application/exi】编号为47,表示负载类型为“精简XML”格式。(翻译不一定准确)

另外,还有一种格式也北IANA认定,也会在CoAP协议中广泛使用那便是CBOR格式,该格式可理解为二进制JSON格式。

applicaiton/cbor】编号为60。

6 示例

该示例来自于RFC7252。

流程描述】

CoAP客户端通过GET方法从Server端获得温度传感器数据,CoAP URI如下

coap://www.server.com/temperautre

CoAP请求采用CON报文,Server接收到CON报文必须返回一个ACK报文。CoAP请求采用0.01 GET方法,若操作成功CoAP Server返回2.05 Content,相当于HTTP 200 OK。请求和响应的MID必须完全相同,此处为0x7d34。请求响应中的Token域为空。CoAP请求中包含Option,该Option的类型为Uri-Path,那么Option Delta的值为0+11=11,Option Value的值为字符串形式的“temperature”。CoAP返回中包含温度数据,使用字符串形式描述,具体值为"22.3"。

图6.1 CoAP 请求响应流程

图6.1 CoAP 请求响应流程

格式描述】

图6.2 CoAP请求响应具体格式

图6.2 CoAP请求响应具体格式

7 总结

一旦熟悉了CoAP协议的格式,那么再学习CoAP协议的应用就轻松多了。




相关内容