一、socket的由來
為了實現客戶端和服務器端的雙向通信,最開始想出的解決辦法是不斷的定時請求,但是耗流量多,也會消耗CPU的利用率。如圖:

后來又想出了改進版的長輪詢Long polling,就是客戶端發送HTTP給服務器之后,看有沒有新消息,如果沒有新消息,就一直等待。當有新消息的時候,才會返回給客戶端。在某種程度上減小了網絡帶寬和CPU利用率等問題。但還是不理想。如圖:

最后WebSocket出現了,即實現了客戶端和服務器端的雙向通信,而且協議的頭部又沒有HTTP的Header那么大,最重要的是效率也大幅提高。如圖:
