第8章 CoAP调试工具
8.1 本章主要内容
本章将重点学习CoAP的调试技巧。在HTTP应用开发过程中包含很多调试工具和调试技巧,这些调试工具可以帮助用户发送合适的HTTP请求,通过这些工具也可以修改HTTP请求首部和请求负载,以及验证服务器是否正常工作。例如,使用Firefox浏览器中的扩展插件Httprequester模拟发送HTTP请求;使用Wireshark分析HTTP请求和HTTP响应;使用cURL客户端工具模拟发送HTTP请求等。在CoAP服务的开发过程中也有这种类型的辅助工具,通过这些辅助工具不但可以验证CoAP协议的各种细节,还可以帮助用户加速完成CoAP服务器和CoAP客户端的开发工作。
本章中我们将重点学习两种调试工具——Firefox中的Copper插件和Wireshark。Copper插件是一款CoAP客户端专用插件;Wireshark是常用的网络抓包工具,通过该工具不但可以展现CoAP的所有细节,还可以了解CoAP与其他TCP/IP族协议之间的关系。
8.2 Copper调试工具
Copper是一款非常容易上手的CoAP客户端调试工具,在前面多个章节中已经介绍并使用了该插件,本节我们将更深入地了解Copper插件的使用细节。
Copper插件是一款客户端调试工具,在没有CoAP服务器的情况下单独使用CoAP客户端是没有任何意义的。若借助Copper插件进行CoAP实验可使用本书提供的CoAP测试服务器,该CoAP测试服务器的域名为coap://wsncoap.org;也可以使用Eclipse项目提供的CoAP测试服务器,该测试服务器的域名为coap://californium.eclipse.org/。本节并不推荐“生硬”地学习Copper插件,而应结合本书第5和6章,通过Copper实验的方式深入理解CoAP的细节。在Firefox浏览器中安装Copper的具体步骤可参考4.2节。若正确安装了Copper插件,可以在Firefox浏览器地址栏中输入“coap://wsncoap.org”,按回车键之后可观察到如图8-1所示的相似界面。
图8-1 Copper调试工具
Copper调试工具大致可以分为以下几个部分:地址栏、工具栏、响应消息简要提示、响应消息首部面板、请求或响应内容面板、路由面板、请求选项设置面板。
8.2.1 Copper地址栏
Copper插件与Firefox浏览器共用地址栏,Copper地址栏中的服务器地址必须以“coap://”开头,Copper插件地址栏的使用方法如图8-2所示。
图8-2 Copper地址栏
Copper地址栏可以设置CoAP请求中的很多内容,这些内容包括:
·CoAP服务器域名或IP地址:例如此处服务器域名为wsncoap.org,该服务器的全网IP地址为139.196.187.107,在地址栏中填入coap://wsncoap.org与coap://139.196.187.107的效果几乎相同。
·CoAP服务器端口号:例如此处CoAP应用端口号为5683。
·CoAP资源路由名称:例如coap://wsncoap.org:5683/seg1/seg2/seg3,其中seg1/seg2/seg3将填入CoAP请求首部的相关区域中。
·CoAP资源查询条件:例如coap://wsncoap.org:5683/query?limit=10&offset=20,该地址包含两个有效查询条件——“limit=10”和“offset=20”,这两个查询条件也会填入CoAP请求首部的相关区域中。
Copper插件只能识别以“coap://”开头的合法CoAP URI,以下几个示例地址均为合法的CoAP URI:
·coap://wsncoap.org:5683/.well-known/core
·coap://wsncoap.org:5683/test
·coap://wsncoap.org:5683/seg1/seg2/seg3
·coap://wsncoap.org:5683/query?limit=10&offset=20
8.2.2 Copper工具栏
Copper工具栏如图8-3所示。