天天看點

HTTP與HTTPS的差別

安全性上,HTTPS是安全超文本協定,在HTTP基礎上有更強的安全性。簡單來說,HTTPS是使用TLS/SSL加密的HTTP協定

申請證書上,HTTPS需要使用ca申請證書

傳輸協定上, HTTP是超文本傳輸協定,明文傳輸;HTTPS是具有安全性的 SSL 加密傳輸協定

連接配接方式與端口上,http的連接配接簡單,是無狀态的,端口是 80; https 在http的基礎上使用了ssl協定進行加密傳輸,端口是 443

HTTP的工作過程

HTTP由請求和響應構成,是一個标準的用戶端伺服器模型(C/S)。HTTP協定永遠都是用戶端發起請求,伺服器回送響應。

位址解析。域名系統DNS解析域名得到主機的IP位址

封裝HTTP請求資料包。封裝的内容有以上部分結合本機自己的資訊。

封裝成TCP包,建立TCP連接配接(TCP的三次握手)

客戶機發送請求指令。 建立連接配接後,客戶機向伺服器發送一個請求

伺服器響應。伺服器接到請求後,給予相應的響應資訊

伺服器關閉TCP連接配接。一般Web伺服器向浏覽器發送了請求資料,它要關閉TCP連接配接

用戶端解析封包,解析HTML代碼,并渲染

HTTPS的實作原理

HTTP以明文方式傳輸資訊,不能保障資料傳輸的安全。

HTTPS在HTTP的基礎上加入了SSL協定。

HTTPS使用SSL協定和TLS協定

SSL 依靠證書來驗證伺服器的身份,并為浏覽器和伺服器之間的通信加密。

HTTPS的通信過程

https通信時,首先建立ssl層的連接配接,用戶端将ssl版本号和加密元件發到伺服器端,伺服器端收到後對ssl版本号和加密元件進行比對,同時将CA憑證及密鑰發送到用戶端。用戶端對證書進行驗證,驗證通過後使用非對稱加密對資料通信時的密鑰進行協商。協商後得到一緻的獲得一緻的對稱加密密鑰。然後使用對稱加密算法進行TCP連接配接,後續的過程跟http的過程一緻。三次握手,資料交換,四次揮手,通信結束。

過程如下 :

用戶端和伺服器端通過TCP建立連接配接。

用戶端向伺服器發送HTTPS請求。

伺服器響應請求,并将數字證書發送給用戶端,數字證書包括公共秘鑰、域名、申請證書的公司。

用戶端收到伺服器端的數字證書之後,會驗證數字證書的合法性。

如果公鑰合格,那麼用戶端會生成一個用于進行對稱加密的密鑰client key,并用伺服器的公鑰對用戶端密鑰進行非對稱加密。

用戶端會發起HTTPS中的第二個HTTP請求,将加密之後的用戶端密鑰發送給伺服器。

伺服器接收到用戶端發來的密文之後,會用私鑰對其進行非對稱解密,得到用戶端秘鑰。并使用用戶端秘鑰進行對稱加密,生成密文并發送。

用戶端收到密文,并使用用戶端秘鑰進行解密,渲染網頁。

參考連結:

https://www.jianshu.com/p/14cd2c9d2cd2

————————————————

版權聲明:本文為CSDN部落客「天才程式YUAN」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:

https://blog.csdn.net/JAck_chen0309/article/details/105020259

繼續閱讀