互聯(lián)網(wǎng)時(shí)代越庇,TCP/IP協(xié)議已經(jīng)一統(tǒng)江湖壹店,現(xiàn)在的物聯(lián)網(wǎng)的通信架構(gòu)也是構(gòu)建在傳統(tǒng)互聯(lián)網(wǎng)基礎(chǔ)架構(gòu)之上。在當(dāng)前的互聯(lián)網(wǎng)通信協(xié)議中求泰,HTTP協(xié)議由于開發(fā)成本低央渣,開放程度高,幾乎占據(jù)大半江山渴频,所以很多廠商在構(gòu)建物聯(lián)網(wǎng)系統(tǒng)時(shí)也基于http協(xié)議進(jìn)行開發(fā)芽丹。包括google主導(dǎo)的physic web項(xiàng)目,都是期望在傳統(tǒng)web技術(shù)基礎(chǔ)上構(gòu)建物聯(lián)網(wǎng)協(xié)議標(biāo)準(zhǔn)卜朗。
HTTP協(xié)議是典型的CS(client/server)通訊模式,由客戶端主動(dòng)發(fā)起連接拔第,向服務(wù)器請(qǐng)求XML或JSON數(shù)據(jù),該協(xié)議最早是為了適用web瀏覽器的上網(wǎng)瀏覽場(chǎng)景和設(shè)計(jì)的场钉,目前在PC楼肪、手機(jī)、pad等終端上都應(yīng)用廣泛惹悄,但是并不適用于物聯(lián)網(wǎng)場(chǎng)景春叫。在物聯(lián)網(wǎng)場(chǎng)景中有三大弊端:
- 由于必須由設(shè)備主動(dòng)向服務(wù)器發(fā)送數(shù)據(jù),難以主動(dòng)向設(shè)備推送數(shù)據(jù)。對(duì)于單單的數(shù)據(jù)采集等場(chǎng)景還勉強(qiáng)適用暂殖,但是對(duì)于頻繁的操控場(chǎng)景价匠,只能通過設(shè)備定期主動(dòng)拉取的的方式,實(shí)現(xiàn)成本和實(shí)時(shí)性都大打折扣呛每。
- 安全性不高踩窖。web的不安全都是婦孺皆知,HTTP是明文協(xié)議晨横,在很多要求高安全性的物聯(lián)網(wǎng)場(chǎng)景洋腮,如果不做很多安全準(zhǔn)備工作(如采用https等),后果不堪設(shè)想手形。
- 不同于用戶交互終端如pc啥供、手機(jī),物聯(lián)網(wǎng)場(chǎng)景中的設(shè)備多樣化库糠,對(duì)于運(yùn)算和存儲(chǔ)資源都十分受限的設(shè)備伙狐,http協(xié)議實(shí)現(xiàn)、XML/JSON數(shù)據(jù)格式的解析瞬欧,都是不可能的任務(wù)贷屎。
標(biāo)準(zhǔn)的HTTP方法有GET、POST 艘虎、PUT和DELETE唉侄。
GET:GET 請(qǐng)求一般不應(yīng)產(chǎn)生副作用。就是說野建,它僅僅是獲取資源信息美旧,就像數(shù)據(jù)庫查詢一樣,不會(huì)修改贬墩,增加數(shù)據(jù)榴嗅,不會(huì)影響資源的狀態(tài),它只是向服務(wù)器發(fā)索取數(shù)據(jù)的一種請(qǐng)求陶舞。
POST:POST表示可能修改變服務(wù)器上的資源的請(qǐng)求嗽测。以新聞網(wǎng)站為例,讀者對(duì)新聞發(fā)表自己的評(píng)論應(yīng)該通過POST實(shí)現(xiàn)肿孵,因?yàn)樵谠u(píng)論提交后 站點(diǎn)的資源已經(jīng)不同了唠粥,或者說資源被修改了。它只是向服務(wù)器提交數(shù)據(jù)的一種請(qǐng)求停做。
PUT:PUT表示可能增加服務(wù)器上的資源請(qǐng)求晤愧。
DELETE:DELETE表示可能刪除服務(wù)器上的資源請(qǐng)求。
在進(jìn)行HTTP連接時(shí)蛉腌,需按照以下步驟進(jìn)行:
1官份、設(shè)置URL:統(tǒng)一資源定位符(Uniform Resource Locator只厘,URL)是對(duì)可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡(jiǎn)潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址舅巷「嵛叮互聯(lián)網(wǎng)上的每個(gè)文件都有一個(gè)唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它钠右。
2赋元、設(shè)置UAGENT:User-Agent中文名為用戶代理,簡(jiǎn)稱 UA飒房,它是一個(gè)特殊字符串頭搁凸,使得服務(wù)器能夠識(shí)別客戶使用的操作系統(tǒng)及版本、CPU 類型狠毯、瀏覽器及版本护糖、瀏覽器渲染引擎、瀏覽器語言垃你、瀏覽器插件等。一些網(wǎng)站常常通過判斷 UA 來給不同的操作系統(tǒng)喂很、不同的瀏覽器發(fā)送不同的頁面惜颇,因此可能造成某些頁面無法在某個(gè)瀏覽器中正常顯示,但通過偽裝 UA 可以繞過檢測(cè)少辣。
3凌摄、發(fā)起查、改漓帅、增锨亏、刪請(qǐng)求。