That's a naive statement. Take streaming protocols, as an example, and that alone is reason enough for why you shouldn't it over HTTP. HTTP is inherently stateless. There are many use-cases that are stateful. This leads to high latencies for HTTP streaming since the full state (HTTP headers to tell me who you are and what you want) is sent for every request.