Socket與WebSocket以及http與https從新總結

Socket與WebSocket以及http與https從新總結

一.Socket

網絡中的Socket是一個抽象的接口 ,而是爲了方便使用TCPUDP而抽象出來的一層 ,能夠理解爲網絡中鏈接的兩端。一般被叫作套接字接口.html

二.WebSocket

WebSocket就是其中一種,是爲了建立一種雙向通訊(全雙工)的協議 ,來彌補HTTP協議在持久通訊能力上的不足web

WebSocket鏈接的過程是:
首先,客戶端發起http請求,通過3次握手後,創建起TCP鏈接;http請求裏存放WebSocket支持的版本號等信息,如:Upgrade、Connection、WebSocket-Version等;
而後,服務器收到客戶端的握手請求後,一樣採用HTTP協議回饋數據;
最後,客戶端收到鏈接成功的消息後,開始藉助於TCP傳輸信道進行全雙工通訊。

三.總結二者關係

Socket是傳輸控制層接口,WebSocket是應用層協議。算法

四.http與https

二者的概念

  • http協議:是超文本傳輸協議,信息是明文傳輸。若是攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就能夠直接讀懂其中的信息。瀏覽器

  • https協議:是具備安全性的ssl加密傳輸協議,爲瀏覽器和服務器之間的通訊加密,確保數據傳輸的安全。
    安全

鏈接方式不一樣

一、http協議:http的鏈接很簡單,是無狀態的。服務器

二、https協議:是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議。websocket

端口不一樣

一、http協議:使用的端口是80。網絡

二、https協議:使用的端口是443.dom

證書申請方式不一樣

一、http協議:免費申請。socket

二、https協議:須要到ca申請證書,通常免費證書不多,須要交費。

五.ssl協議

參考https://www.cnblogs.com/jztan/p/8159086.html

先講兩個概念

  • 對稱加密: 加密和解密的祕鑰使用的是同一個.
  • 非對稱加密: 與對稱加密算法不一樣,非對稱加密算法須要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)

ssl協議是非對稱加密

SSL協議的握手過程

先用語言來闡述下:

第一步:愛麗絲給出支持SSL協議版本號,一個客戶端隨機數(Client random,請注意這是第一個隨機數),客戶端支持的加密方法等信息;

第二步:鮑勃收到信息後,確認雙方使用的加密方法,並返回數字證書,一個服務器生成的隨機數(Server random,注意這是第二個隨機數)等信息;

第三步:愛麗絲確認數字證書的有效性,而後生成一個新的隨機數(Premaster secret),而後使用數字證書中的公鑰,加密這個隨機數,發給鮑勃。

第四步:鮑勃使用本身的私鑰,獲取愛麗絲髮來的隨機數(即Premaster secret);(第3、四步就是非對稱加密的過程了)

第五步:愛麗絲和鮑勃經過約定的加密方法(一般是AES算法),使用前面三個隨機數,生成對話密鑰,用來加密接下來的通訊內容;

相關文章
相關標籤/搜索