&gt; (oddly enough)<p>That&#x27;s by design - allowing arbitrary TCP in a browser is just asking for security and DDoS problems.<p>&gt; HTTP works through proxies<p>So does TCP (SOCKS).<p>&gt; Web servers<p>Using web server wouldn&#x27;t make sense if you were using straight TCP.<p>The real reasons HTTP is used when plain TCP would be more appropriate are:<p>1) Lazy&#x2F;stupid firewalls configured to only allow port 80&#x2F;443. This leads to everyone doing everything over HTTP, moving the problem and making the firewall much less useful.<p>2) NAT. When the primary benefit of the internet - where each peer is equivalent in the protocol - cannot be counted on, centralized servers (usually using HTTP because of #1) are used instead of direct TCP.