Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> HTML

Sự khác biệt giữa giao thức MQTT và HTTP


Hãy hiểu khái niệm Hypertext Transfer Protocol (HTTP) và MQ Telemetry Transport (MQTT) trước khi so sánh.

Hypertext Transfer Protocol (HTTP)

HTTP là giao thức lớp ứng dụng phổ biến nhất trên thế giới ngày nay. Nó là nền tảng của World Wide Web. Mục đích là cung cấp giao thức nhẹ để truy xuất HTML và các tài liệu từ các trang web qua Internet. Mỗi khi bạn mở trình duyệt để lướt web, bạn đang dùng HTTP qua TCP/IP.

Quy trình truy xuất trang HTTP cơ bản

  • Trang web thường bao gồm nhiều đối tượng: HTML cơ sở, hình ảnh, đa phương tiện.
  • HTML đóng vai trò mẫu định dạng: bố cục, font, màu, hình ảnh cần tải.

Quy trình diễn ra theo thứ tự:

  • Client gửi request trang web đến server.
  • Server phân tích request và gửi lại xác nhận cùng mã HTML.
  • Client giải mã HTML và xây dựng trang.
  • Client tiếp tục request các tài nguyên nhúng (hình ảnh, video...).

MQ Telemetry Transport (MQTT)

Hệ thống MQTT bao gồm các client giao tiếp với server (gọi là "broker"). Client có thể là publisher (phát dữ liệu) hoặc subscriber (đăng ký nhận dữ liệu). Mọi client đều kết nối đến broker.

Dữ liệu được tổ chức theo階層 chủ đề (topic). Khi publisher có dữ liệu mới, nó gửi thông điệp điều khiển kèm dữ liệu đến broker. Broker phân phối dữ liệu đến các client đã subscribe chủ đề đó. Publisher không cần biết số lượng/ vị trí subscriber, và ngược lại.

Nếu broker nhận chủ đề không có subscriber, nó loại bỏ chủ đề trừ khi publisher yêu cầu retain (giữ lại). Điều này giúp subscriber mới nhận giá trị mới nhất ngay lập tức.

Khi publisher kết nối, có thể thiết lập "last will message" - tin nhắn mặc định gửi đến subscriber nếu publisher ngắt kết nối bất ngờ.

Client chỉ giao tiếp với broker, nhưng hệ thống có thể có nhiều broker trao đổi dữ liệu dựa trên chủ đề subscriber.

Thông điệp điều khiển MQTT tối thiểu chỉ 2 byte. Có thể truyền tới 256 MB dữ liệu. Có 14 loại thông điệp được định nghĩa để kết nối/ngắt kết nối, publish, xác nhận nhận, quản lý kết nối.

MQTT chạy trên TCP. Biến thể MQTT-SN dùng cho UDP hoặc Bluetooth.

Bảng so sánh tóm tắt

Tiêu chíHTTPMQTT
Mô hìnhRequest/Response (Client-Server)Publish/Subscribe (qua Broker)
Header overheadLớn (nhiều header text)Rất nhỏ (tối thiểu 2 byte)
Kết nốiNgắn hạn, statelessDài hạn, persistent (keep-alive)
Phù hợp choWeb, REST API, tải tài liệuIoT, realtime, mạng không ổn định, thiết bị nhúng
QoS (Quality of Service)Không có cơ chế built-inCó 3 mức (0, 1, 2)