Imagine this:
Visiting a website (or downloading a file):
Client texts Server: "Hey, send me X please"
Server texts Client: "Here it is: [data]"
Now compare this to a socket connection:
Client calls server: "Hey, whats up?"
Server: "Hey, good, i'm holding the phone, talk to me when needed"
Client: "Sure, and if you have something to say, I'm listening"
.... Time passes by ...
Server to client: "Hey you there? I just wanted to tell you [data]"
... Time passes by ...
Client to server: "Hey what about X?"
... and conversation goes on ...
Now the side effect of a TCP socket connection is that the server needs to "hold the phone" for all incoming traffic and communicate with them. As opposed to simple HTTP requests ("SMS messages") that can be cached or delegated - it requires more resources.