Yet Another Layer of Processing.
Okay...
You could have http read the socket and send over the data over http.
But why, why would you add another layer of processing. http has to be generated... gads adds tremendous complexity without any benefit of making things more robust.
Complexity is nice, but only to a point. Me personally http was designed for one thing: a presentation transfer layer, it has lots of overhead and rides on top of TCP/IP. I akin this to electroncis... a transformer to be exact.
A transformer is used to "isolate" or to multiply or divide (Voltage or Current). Theoretically they are supposed to be 100% efficient. In the real world, they can be as good as 98% but as bad as 50%. IOW, you lose much power just by adding a layer. The part that applies here is the Isolation.
Or think of it as someone "expanding" your data, so it can travel over http. The only real help would be using an http server that compresses on the fly... of course a socket server can do that too, easier too as it doesn't have constraints placed on it by another process or service.
"More work up front" usually mean "A lot less work down the road" which is usually a ++... to the good. http (specifically IIS) is a seriously moving target... if you can STOP any changes from happening... you could go that route but even Apache (or Weblogic, or WebSphere, or Roxen etc..)are still moving the specs around and break things from time to time.