回答:
HTTP、MQTT是基于TCP/IP的應(yīng)用協(xié)議。HTTP是應(yīng)用最為廣泛和流行的協(xié)議。但是MQTT在過(guò)去的幾年里迅速取得了進(jìn)展。在討論物聯(lián)網(wǎng)開(kāi)發(fā)的時(shí)候,http協(xié)議和MQTT協(xié)議哪個(gè)好用?開(kāi)發(fā)者必須在這兩者之間作出選擇。
HTTP與MQTT的區(qū)別
HTTP特點(diǎn):
1.支持客戶(hù)端/服務(wù)器模式
2.簡(jiǎn)單快速:由于HTTP協(xié)議簡(jiǎn)單,使得HTTP服務(wù)程序規(guī)模小而且通信速度很快。
3.靈活:HTTP允許傳輸任意類(lèi)型的數(shù)據(jù)對(duì)象。
4.無(wú)連接:限制每次連接只能處理一個(gè)請(qǐng)求,服務(wù)器處理完客戶(hù)端的請(qǐng)求并收到客戶(hù)端的應(yīng)答后即斷開(kāi)連接,采用這種方式可以節(jié)省時(shí)間。HTTP1.1后默認(rèn)采用keepline長(zhǎng)連接,服務(wù)器要等一段時(shí)間后才能斷開(kāi)連接,以保證連接特性。但是你始終都要認(rèn)為HTTP請(qǐng)求在結(jié)束后連接就會(huì)關(guān)閉,這是HTTP的特性。與下層實(shí)現(xiàn)在結(jié)束后是否關(guān)閉連接都不會(huì)改變這個(gè)特性,長(zhǎng)連接可以理解為下層實(shí)現(xiàn)對(duì)上層透明。
5.無(wú)狀態(tài):無(wú)狀態(tài)是指協(xié)議對(duì)事務(wù)處理沒(méi)有記憶能力,意味著如果后續(xù)處理需要前面的信息,則必須被重傳,這可能導(dǎo)致每次連接的數(shù)據(jù)量增大,另一方面不需要前面信息時(shí),它的應(yīng)答就較快。
MQTT特點(diǎn):
1.使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布,解除應(yīng)用程序耦合。
2.二進(jìn)制形式編碼,小型化傳輸,協(xié)議開(kāi)銷(xiāo)較?。ü潭ㄩL(zhǎng)度的頭部是2字節(jié)),極大降低網(wǎng)絡(luò)開(kāi)銷(xiāo)。
3.三種消息發(fā)布服務(wù)質(zhì)量:至多一次、至少一次、只有一次。
4.采用心跳機(jī)制,通過(guò)間斷性的發(fā)送報(bào)文,來(lái)維持客戶(hù)端和服務(wù)端的心跳長(zhǎng)連接,以減少電量的消耗,提升系統(tǒng)資源利用率。
http協(xié)議和MQTT協(xié)議哪個(gè)好用?
MQTT以數(shù)據(jù)為中心,而HTTP是以文檔為中心的。
HTTP是用于客戶(hù)端 – 服務(wù)器計(jì)算的請(qǐng)求 – 響應(yīng)協(xié)議,并不總是針對(duì)移動(dòng)設(shè)備進(jìn)行優(yōu)化。
MQTT是輕量級(jí)(MQTT將數(shù)據(jù)作為字節(jié)數(shù)組傳輸)和發(fā)布/訂閱模型,這使其非常適合資源受限的設(shè)備并有助于節(jié)省電池。
絕大多數(shù)的web開(kāi)發(fā)都是構(gòu)建在HTTP之上的web應(yīng)用。在物聯(lián)網(wǎng)的世界里面,HTTP協(xié)議也有在用。有兩種形式,一種是設(shè)備自身硬件資源比較豐富支持直接從設(shè)備端通過(guò)HTTP上傳;另一種是設(shè)備不具備網(wǎng)口,需要通過(guò)網(wǎng)關(guān)上傳也是采用HTTP。
結(jié)論:
MQTT協(xié)議的響應(yīng)時(shí)間,吞吐量(MQTT比HTTP快93倍),更低的電池和帶寬使用率非常適合物聯(lián)網(wǎng)場(chǎng)景。在間歇性連接的情況下,它也是完美的。HTTP是優(yōu)秀且可擴(kuò)展的。但是物聯(lián)網(wǎng)場(chǎng)景下,MQTT更適合。
免責(zé)聲明:本網(wǎng)站部分文章、圖片等信息來(lái)源于網(wǎng)絡(luò),版權(quán)歸原作者平臺(tái)所有,僅用于學(xué)術(shù)分享,如不慎侵犯了你的權(quán)益,請(qǐng)聯(lián)系我們,我們將做刪除處理!