この記事の要点
- HTTPは、クライアントの要求にサーバが応答する、状態を持たない(ステートレスな)要求・応答型のプロトコル。MQTTは、ブローカーが購読者へ配るpublish/subscribe型。
- IoTでの使い分けの軸は3つ。1対多に配るか、サーバから端末へすぐ指示を送るか、回線が細く不安定か。どれかに当てはまればMQTTが有力。
- 既存のWeb APIとつなぐ、画像やログをまとめて送る、1回ごとの問い合わせで足りる場合はHTTPが素直。
- HTTP/3(RFC 9114、2022年6月)はHTTPの意味をQUIC(RFC 9000、UDPベース)の上に載せたもの。MQTTはTCPなど順序どおり欠けずに届く通信の上で動く。
HTTPとMQTTの使い分けとは?一言でいうと?
一言でいうと、「必要なときに聞きに行く」ならHTTP、「変化があったら配ってもらう」ならMQTTです。
HTTPは、IETFのRFC 9110(2022年6月)で「状態を持たないアプリケーション層のプロトコル」と定義され、クライアントが送った要求にサーバが応答する形が基本です。各要求はそれだけで理解できるように扱われます。MQTTは、OASIS標準のMQTT 5.0(2019年3月7日)で定められたpublish/subscribe型で、センサなどが発行したメッセージを、ブローカー(サーバ)がそのトピックを購読しているクライアントに配ります(2026年9月27日確認)。
IoTでは、センサの値を1か所に集めて複数の画面やシステムに配る、クラウドから現場の機器へ指示を送る、といった流れが多くなります。この「配る」「押し出す」の場面でMQTTが選ばれやすく、クラウドのWeb APIとのやり取りや大きなファイルの送信ではHTTPが使われる、という役割分担が生まれます。
通信モデル・ヘッダの重さ・双方向はどう違う?比較表
| 比較軸 | HTTP | MQTT |
|---|---|---|
| 規格 | IETF。意味はRFC 9110、HTTP/1.1はRFC 9112、HTTP/2はRFC 9113、HTTP/3はRFC 9114(いずれも2022年6月) | OASIS MQTT 5.0(2019年3月7日)。3.1.1はISO/IEC 20922:2016 |
| 通信モデル | 要求・応答(クライアントが聞き、サーバが答える) | publish/subscribe(ブローカーが購読者へ配る) |
| 相手を知る必要 | クライアントがサーバのURIを知っている | 送り手も受け手もブローカーだけを知っていればよい |
| 1対多の配信 | 受け手ごとに要求・応答が必要 | 1回の発行でブローカーが購読者全員に配る |
| サーバ側からの送信 | 基本はクライアントの要求への応答として返す | 接続を保ったまま、ブローカーからいつでも配信できる |
| ヘッダの重さ | 名前と値の組のヘッダ(HTTP/2はHPACK、HTTP/3はQPACKで圧縮) | 固定ヘッダは最小2バイト |
| 下位の通信 | HTTP/1.1・HTTP/2はTCP、HTTP/3はQUIC(UDPベース) | TCP/IP、TLS、WebSocketなど順序どおり欠けずに届く通信 |
| 既定ポート | http 80、https 443 | 1883(TLSなし)、8883(TLS) |
| 確実さの調整 | アプリケーション側で再送などを作る | QoS 0・1・2で選べる |
← 表は横にスクロールできます →
表で差が大きいのは、1対多の配信とサーバ側からの送信の行です。HTTPで「サーバから端末へ新しい指示があるか」を知るには、端末が定期的に問い合わせる(ポーリングする)必要があり、指示がなくても通信と電力を使います。MQTTでは端末がブローカーとの接続を保っておけば、指示が出た時点で届きます。
双方向の通信が必要なブラウザ向けには、WebSocket(RFC 6455、2011年12月)があります。WebSocketはTCPの上で、サーバとの双方向の通信を、複数のHTTP接続を開かずに実現するためのプロトコルです。MQTTの仕様書は、MQTTを運ぶ手段としてWebSocketも使えるとしています。
HTTP/3は、HTTPの意味(メソッドやステータスコード)をQUICの上に載せたものです。QUIC(RFC 9000、2021年5月)はUDPを使う、多重化と暗号化を備えたトランスポートです。HTTPの版が変わっても、要求・応答型という通信モデルは変わりません。
用途からどう選ぶ?判断の手順
設計の場面や事例型の4択では、次の順に条件を確かめると選びやすくなります。
- 同じデータを複数の相手に配るか:監視画面・記録サーバ・分析システムなど受け手が複数なら、1回の発行で配れるMQTTが有利。
- サーバから端末へ、すぐに指示を届けるか:遠隔操作や設定変更を待たせたくないなら、接続を保って配信を受けるMQTT。HTTPでは問い合わせの間隔の分だけ遅れる。
- 回線が細い・不安定・機器が非力か:ヘッダが小さく、QoSで確実さを選べるMQTTが扱いやすい。さらに軽くしたい場合は、UDPで動くCoAPも候補になる。
- 既存のWeb API・クラウドのサービスとつなぐか:REST APIとして公開されている相手なら、HTTP(HTTPS)で直接呼ぶのが素直。
- まとまったデータを一度に送るか:画像・ログ・ファームウェアのファイルなど、1回の要求で大きなデータを受け渡すならHTTP。
実際のIoTシステムでは、現場の機器とゲートウェイ・クラウドの間はMQTT、クラウドと外部サービスの間はHTTPのように、区間ごとに使い分けることも珍しくありません。どちらか一方が常に優れている、という選択肢には注意してください。
IoT中級ではどこで、どう問われる?
HTTPとMQTTの使い分けは、IoTシステム技術検定 中級の出題カテゴリ「センサ/アクチュエータ技術と通信方式(デバイス、ネットワーク、LPWA、プロトコル)」の「プロトコル」に当たります。公式ページの図では比率が25〜30%です(MCPC公式ページ、2026年9月27日確認)。公式テキスト『IoT技術テキスト 第4版』では第4章「IoT通信方式」に当たる範囲です(章とカテゴリの対応は当サイトの推定)。
出題数は公表されていません。4択では、次のような観点が考えられます(当サイトの予想で、出題の再現ではありません)。
- 要求・応答型とpublish/subscribe型の特徴を入れ替えた記述を見抜く
- 用途の条件(1対多、遠隔操作、細い回線)から適したプロトコルを選ぶ
- 各プロトコルの下位の通信(HTTP/3はQUIC、MQTTはTCP、CoAPはUDP)の組合せ
- ヘッダの大きさや、サーバからの送信の可否など、IoT向きの理由を問う
MQTTのQoSや保持メッセージは MQTTとは、UDPで動くREST型の選択肢は CoAPとは で詳しく扱います。小さなデータが大量に届くというIoTの通信の性質は IoTの通信トラフィックの特性 にまとめています。
どこで取り違えやすい?つまずき別の見直し表
| 取り違え | 正しい整理 | 見直す手がかり |
|---|---|---|
| HTTP/3もTCPで動くと思う | HTTP/3はQUIC(UDPベース)の上で動く。TCPを使うのはHTTP/1.1とHTTP/2 | RFC 9114=QUICの上のHTTP |
| MQTTも要求・応答型だと思う | MQTTはpublish/subscribe型。ブローカーが購読者へ配る | 「購読」「トピック」ならMQTT |
| MQTTはHTTPより常に優れていると思う | Web APIとの連携や大きなファイルの送信はHTTPが素直 | 区間ごとに使い分ける |
| HTTPは状態を持つと思う | RFC 9110はHTTPを状態を持たないプロトコルと定義。状態はクッキーなどで別に扱う | ステートレス |
| MQTTでは端末どうしが直接つながると思う | 送り手も受け手もブローカーとだけ接続する | 中継役はブローカー |
← 表は横にスクロールできます →
確認問題1:多数の画面へ同時に配るならどれ?
工場の設備の稼働状態を、事務所の監視画面、保守担当者のタブレット、記録用サーバの3か所へ、変化のたびに同時に届けたい。最も適した方法はどれか。
- 各画面が数秒ごとにHTTPのGETで設備に問い合わせる
- 設備が各画面へ順番にHTTPのPOSTで送り直す
- 設備がMQTTで発行し、3か所がトピックを購読する
- 設備がCoAPのNONで記録用サーバにだけ送る
正解:3。MQTTなら、設備が1回発行するだけで、ブローカーがトピックを購読している3か所すべてに配ります。受け手が増えても設備側の設定は変わりません。
1は変化がなくても問い合わせが続き、問い合わせの間隔の分だけ届くのが遅れます。2は受け手ごとに送り直す必要があり、受け手が増えるほど設備の負担が増えます。4は記録用サーバにしか届かず、「3か所へ同時に」という条件を満たしません。
確認問題2:HTTP/3の下位で使われるのは?
RFC 9114で規定されたHTTP/3が、HTTPの意味を載せて運ぶために使うトランスポートとして、最も適切なものはどれか。
- TCPの上のTLS 1.2
- UDPを使うQUIC
- TCPの上のWebSocket
- UDPを使うDTLS
正解:2。HTTP/3は、HTTPの意味をQUIC(RFC 9000)の上に載せたものです。QUICはUDPを使い、多重化と暗号化を備えたトランスポートです。
1はHTTP/1.1やHTTP/2をHTTPSで使うときの組合せに近く、HTTP/3ではありません。3のWebSocketはTCPの上で双方向の通信を行うプロトコルで、HTTP/3の土台ではありません。4のDTLSはUDP向けのTLSで、CoAPの暗号化(coaps)などに使われます。
確認問題3:IoTでの使い分けとして適切でないものは?
IoTシステムでのHTTPとMQTTの使い分けの説明として、適切でないものはどれか。
- 遠隔操作の指示をすぐ届けたいので、端末はMQTTで接続を保つ
- 外部のREST APIを呼び出す区間は、HTTPSで通信する
- ファームウェアのファイルは、HTTPSでまとめて取得する
- MQTTは要求・応答型なので、1対多の配信には向かない
正解:4。MQTTはpublish/subscribe型で、1回の発行をブローカーが複数の購読者に配るため、1対多の配信に向きます。「要求・応答型」「1対多に向かない」の2点とも誤りです。
1は、接続を保っておけばブローカーからすぐに配信を受けられるので適切です。2は、REST APIとして公開された相手にはHTTP(HTTPS)で直接つなぐのが素直なので適切です。3も、まとまったファイルを1回の要求で受け取る用途にHTTPが向くため適切です。
プロトコルの使い分けに慣れたら、IoT中級の無料お試し20問 で、データ活用やセキュリティも含めた本番に近い形で試してください。登録なしで全問の解説まで読めます。
よくある質問
HTTPでもサーバから端末へ送る方法はありませんか?
HTTPの基本は、クライアントの要求にサーバが応答する形です。端末が短い間隔で問い合わせる方法や、TCPの上で双方向の通信を行うWebSocket(RFC 6455)を使う方法があります。IoTでは、接続を保ったまま配信を受けられるMQTTを選ぶ設計がよく検討されます。
MQTTとHTTPを1つのシステムで両方使ってもいいですか?
問題ありません。現場の機器とブローカーの間はMQTT、クラウドと外部サービスの間はHTTPのように、区間ごとの条件で選ぶのが一般的な考え方です。ゲートウェイやクラウドの側で、2つのプロトコルの間を橋渡しします。
HTTP/3にするとIoTの通信は速くなりますか?
QUICは接続の確立を短くする工夫などを持ちますが、効果は回線の状態や通信の回数で変わります。HTTP/3にしても要求・応答型という通信モデルは同じなので、1対多の配信やサーバからの即時の送信という点ではMQTTとの違いは残ります。
出典・参考
- [1]MCPC IoTシステム技術検定 中級(出題カテゴリと比率。2026年9月27日確認)
- [2]OASIS: MQTT Version 5.0(2019年3月7日。2026年9月27日確認)
- [3]RFC 9110: HTTP Semantics(2022年6月。2026年9月27日確認)
- [4]RFC 9114: HTTP/3(2022年6月。2026年9月27日確認)
- [5]RFC 9000: QUIC(2021年5月。2026年9月27日確認)
- [6]RFC 9113: HTTP/2(2022年6月。2026年9月27日確認)
- [7]RFC 9204: QPACK(2022年6月)/RFC 7541: HPACK(2015年5月)(2026年9月27日確認)
- [8]RFC 6455: The WebSocket Protocol(2011年12月。2026年9月27日確認)
本番と同じペースで腕試し
記事の次は、本番形式の問題で。
公式の出題カテゴリの比率どおりに組んだ無料お試しを、登録不要・カード不要で解けます。続きの模試と章別ドリルは買い切りで、月額はかかりません。
あわせて読みたい
当サイトは、モバイルコンピューティング推進コンソーシアム(MCPC)とは関係のない個人が運営する非公式の学習教材です。掲載している問題はすべて当サイトのオリジナルで、実際の試験問題・過去問題・再現問題ではありません。試験の日程・受検料・出題範囲は公式サイト(https://www.mcpc-jp.org/license/ )で必ず確認してください。合格を保証するものではありません。合格の目安は当サイトの推定です。技術・制度の記述は「最終確認日」時点のものです。