There are some disadvantages to HTTP as an IoT protocol:
Higher power needs: Communications have frequent back and forth interactions, connections need to be sustained, and plain text results in larger message sizes. All of this requires more power to support.
The IoT device complexity: The device needs enough memory and CPU power to support the TCP protocol and high level HTTP RESTful APIs.