MQTT is designed as a quick and easy messaging protocol and, as a result, is faster and more efficient than HTTP when used to execute the equivalent. More efficient not only means less traffic data and more speed, but sometimes it can mean less electrical power. MQTT is especially good where bandwidth is a problem.
MQTT, however, needs a client implementation (e.g., Paho), which is perhaps a rarer thing than an HTTP client implementation, which will be more common and therefore more likely / readily available on any given device.
There are also considerations for a TCP / IP port where some network devices may require HTTP ports 80 or 443 (although IoTF supports MQTT and MQTTWS on port 443).
There may also be an ideological or philosophical reason for choosing HTTP instead of MQTT (or COAP, for that matter), but usually I would say that the reasons for choosing HTTP instead of MQTT will be related to network or client support.
There is no official document on performance differences yet, but itβs safe to say that MQTT will be more efficient and faster, given almost any messaging scenario (long-lived connections or adhoc, etc.).
source share