title: Why websocket needs an opening handshake using HTTP? Why can't it be an independent protocol?
body: <p><em>Websocket is designed in such a way that its servers can share a port with HTTP servers, by having its handshake be a valid HTTP Upgrade request.</em></p>
  
  <p>I have a doubt in this design philosophy.
  Any ways the WebSocket Protocol is an independent TCP-based protocol.</p>
  
  <p>Why would we need this HTTP handshake(upgrade request) and a protocol switching. Instead why can't we directly(&amp; independently) follow a websocket like protocol?</p>