MQTT 和 HTTP 協議之間有什麼區別?
在瞭解它們之間的區別之前,讓我們先了解一下超文字傳輸協議 (HTTP) 和 MQ 遙測傳輸 (MQTT) 協議的概念。
超文字傳輸協議 (HTTP)
超文字傳輸協議或 HTTP,必須是當今世界上最普遍使用的應用層協議。它構成了大多數人理解網際網路——全球資訊網的基礎。
其目的是為從整個網際網路上的網站檢索超文字標記語言 (HTML) 和其他文件提供一種輕量級協議。每次您開啟 Web 瀏覽器瀏覽網際網路時,您都在使用 TCP/IP 上的 HTTP。
基本 HTTP 頁面檢索
我們應該從一開始就瞭解程式如何從 Web 伺服器檢索基本頁面。
需要注意的主要要點是,網頁通常由大量物件組成,從 HTML 基礎到頁面上可用的影像。
HTML 可以被認為是頁面的整體格式,它告訴瀏覽器內容的佈局、文字大小和顏色、頁面的背景顏色以及構成頁面的其他哪些影像應該被檢索。
考慮以下順序發生的流程:−
客戶端向 Web 伺服器傳送對所需頁面的請求。
伺服器分析請求並向客戶端傳送確認,以及建立頁面所需的 HTML 程式碼。
客戶端將開始解釋 HTML 並構建頁面。
客戶端將在後續請求中檢索任何嵌入式專案,例如影像或其他音訊/影片源。
MQ 遙測傳輸 (MQTT)
MQTT 系統由經常稱為“代理”的伺服器與客戶端通訊組成。客戶端可以是資料的釋出者或訂閱者。每個客戶端都可以連線到代理。
資料按主題的層次結構組織。當釋出者有新資料要分發時,它會將包含資料的控制訊息傳送到連線的代理。
然後,代理將資料分發給已訂閱該主題的任何客戶端。釋出者不需要任何關於訂閱者數量或位置的資訊,因此不需要使用任何關於釋出者的資訊進行配置。
如果代理收到沒有當前訂閱者的主題,它將丟棄該主題,除非釋出者指示應保留該主題。這使新訂閱者能夠獲取最新值,而不是等待發布者的下一個更新。
當釋出客戶端最初連線到代理時,它可以設定一條預設訊息,如果代理檢測到釋出客戶端意外斷開與代理的連線,則將其傳送給訂閱者。
客戶端僅與代理通訊,但系統可能包含一些根據其當前訂閱者的主題交換資料的代理伺服器。
最小的 MQTT 控制訊息可能只有兩個位元組的資料。如果需要,控制訊息可以傳遞大約 256 MB 的資料。
有 14 種定義的訊息型別用於連線和斷開客戶端與代理的連線、釋出資料、確認資料接收以及管理客戶端和伺服器之間的通訊。
MQTT 依賴於 TCP 協議進行資料傳輸。一個變體 MQTTSN 用於不同的傳輸方式,例如 UDP 或藍牙。