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