CoAP协议
CoAP(Constrained Application Protocol)
CoAP是6LowPAN协议栈中的应用层协议
CoAP是超轻量型协议
CoAP的默认UDP端口号为5683
1. 四种消息类型
typedef enum {
COAP_TYPE_CON, /* confirmables */
COAP_TYPE_NON, /* non-confirmables */
COAP_TYPE_ACK, /* acknowledgements */
COAP_TYPE_RST /* reset */
} coap_message_type_t;
ACK回应CON
RST:当接收者接受到的消息包含一个错误,接受者解析消息或者不再关心发送者发送的内容,那么复位消息将会被发送
2. 消息结构
version:版本号
type:消息类型
tkl:标记长度
id:每个CoAP消息都有一个ID,在一次会话中ID总是保持不变
token:标记是ID的另一种表现
options:类似于HTTP请求头
payload:交互数据
3. options
包含Delta、Length、Value
Delta:表示Option的增量,当前的Option的具体编号等于之前所有Option Delta的总和
Length:表示Value的具体长度
Value:表示Option具体内容
- 3 Uri-Host:CoAP主机名称
- 7 Uri-Port:CoAP端口号,默认为5683
- 11 Uri-Path:资源路径。长度不计第一个”\”
- 15 Uri-Query:资源参数。Uri-Path?Uri-Query&Uri-Query
4. code
- 2.01:Created
- 2.02:Deleted
- 2.03:Valid
- 2.04:Changed
- 2.05:Content。类似于HTTP 200 OK
- 4.00:Bad Request 请求错误,服务器无法处理。类似于HTTP 400
- 4.01:Unauthorized 没有范围权限。类似于HTTP 401
- 4.02:Bad Option 请求中包含错误选项
- 4.03:Forbidden 服务器拒绝请求。类似于HTTP 403
- 4.04:Not Found 服务器找不到资源。类似于HTTP 404
- 4.05:Method Not Allowed 非法请求方法。类似于HTTP 405
- 4.06:Not Acceptable 请求选项和服务器生成内容选项不一致。类似于HTTP 406
- 4.12:Precondition Failed 请求参数不足。类似于HTTP 412
- 4.15:Unsuppor Conten-Type 请求中的媒体类型不被支持。类似于HTTP 415
- 5.00:Internal Server Error 服务器内部错误。类似于HTTP 500
- 5.01:Not Implemented 服务器无法支持请求内容。类似于HTTP 501
- 5.02:Bad Gateway 服务器作为网关时,收到了一个错误的响应。类似于HTTP 502
- 5.03:Service Unavailable 服务器过载或者维护停机。类似于HTTP 503
- 5.04:Gateway Timeout 服务器作为网关时,执行请求时发生超时错误。类似于HTTP 504
- 5.05:Proxying Not Supported 服务器不支持代理功能