互联网时代,TCP/IP协议已经一统江湖,现在的物联网的通信架构也是构建在传统互联网基础架构之上。在当前的互联网通信协议中,HTTP协议由于开发成本低,开放程度高,几乎占据大半江山,所以很多厂商在构建物联网系统时也基于http协议进行开发。包括google主导的physic web项目,都是期望在传统web技术基础上构建物联网协议标准。
HTTP协议是典型的CS(client/server)通讯模式,由客户端主动发起连接,向服务器请求XML或JSON数据,该协议最早是为了适用web浏览器的上网浏览场景和设计的,目前在PC、手机、pad等终端上都应用广泛,但是并不适用于物联网场景。在物联网场景中有三大弊端:
- 由于必须由设备主动向服务器发送数据,难以主动向设备推送数据。对于单单的数据采集等场景还勉强适用,但是对于频繁的操控场景,只能通过设备定期主动拉取的的方式,实现成本和实时性都大打折扣。
- 安全性不高。web的不安全都是妇孺皆知,HTTP是明文协议,在很多要求高安全性的物联网场景,如果不做很多安全准备工作(如采用https等),后果不堪设想。
- 不同于用户交互终端如pc、手机,物联网场景中的设备多样化,对于运算和存储资源都十分受限的设备,http协议实现、XML/JSON数据格式的解析,都是不可能的任务。
标准的HTTP方法有GET、POST 、PUT和DELETE。
GET:GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态,它只是向服务器发索取数据的一种请求。
POST:POST表示可能修改变服务器上的资源的请求。以新闻网站为例,读者对新闻发表自己的评论应该通过POST实现,因为在评论提交后 站点的资源已经不同了,或者说资源被修改了。它只是向服务器提交数据的一种请求。
PUT:PUT表示可能增加服务器上的资源请求。
DELETE:DELETE表示可能删除服务器上的资源请求。
在进行HTTP连接时,需按照以下步骤进行:
1、设置URL:统一资源定位符(Uniform Resource Locator,URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
2、设置UAGENT:User-Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。一些网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正常显示,但通过伪装 UA 可以绕过检测。
3、发起查、改、增、删请求。