網絡中的Socket是一個抽象的接口
,而是爲了方便使用TCP
或UDP
而抽象出來的一層 ,能夠理解爲網絡中鏈接的兩端。一般被叫作套接字接口.html
WebSocket就是其中一種,是爲了建立一種雙向通訊(全雙工)的協議 ,來彌補HTTP協議在持久通訊能力
上的不足web
WebSocket鏈接的過程是: 首先,客戶端發起http請求,通過3次握手後,創建起TCP鏈接;http請求裏存放WebSocket支持的版本號等信息,如:Upgrade、Connection、WebSocket-Version等; 而後,服務器收到客戶端的握手請求後,一樣採用HTTP協議回饋數據; 最後,客戶端收到鏈接成功的消息後,開始藉助於TCP傳輸信道進行全雙工通訊。
Socket是傳輸控制層接口,WebSocket是應用層協議。算法
http協議:是超文本傳輸協議,信息是明文傳輸。若是攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就能夠直接讀懂其中的信息。瀏覽器
https協議:是具備安全性的ssl加密傳輸協議
,爲瀏覽器和服務器之間的通訊加密,確保數據傳輸的安全。
安全
一、http協議:http的鏈接很簡單,是無狀態的。服務器
二、https協議:是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議。websocket
一、http協議:使用的端口是80。網絡
二、https協議:使用的端口是443.dom
一、http協議:免費申請。socket
二、https協議:須要到ca申請證書,通常免費證書不多,須要交費。
參考https://www.cnblogs.com/jztan/p/8159086.html
先講兩個概念
ssl協議是非對稱加密
先用語言來闡述下:
第一步:愛麗絲給出支持SSL協議版本號,一個客戶端隨機數(Client random,請注意這是第一個隨機數),客戶端支持的加密方法等信息;
第二步:鮑勃收到信息後,確認雙方使用的加密方法,並返回數字證書,一個服務器生成的隨機數(Server random,注意這是第二個隨機數)等信息;
第三步:愛麗絲確認數字證書的有效性,而後生成一個新的隨機數(Premaster secret),而後使用數字證書中的公鑰,加密這個隨機數,發給鮑勃。
第四步:鮑勃使用本身的私鑰,獲取愛麗絲髮來的隨機數(即Premaster secret);(第3、四步就是非對稱加密的過程了)
第五步:愛麗絲和鮑勃經過約定的加密方法(一般是AES算法),使用前面三個隨機數,生成對話密鑰,用來加密接下來的通訊內容;