一文就讓你搞懂http和https的通信過程及區別


一、 HTTP與HTTPS的區別

1、端口:http端口號是 80;https端口號是 443

2、傳輸協議:http是超文本傳輸協議,屬於明文傳輸;https是安全的超文本傳輸協議,是經過SSL加密后的傳輸協議

3、安全性:https使用了TLS/SSL加密,比http更加的安全

4、證書:https需要申請ca證書

二、HTTP的通信過程

作為標准的C/S模型,http協議總是由客戶端發起,服務器進行響應。

1、DNS解析,域名系統DNS將域名解析成IP地址

2、建立TCP連接,進行TCP的三次握手

3、瀏覽器發送請求

4、服務器響應瀏覽器,向瀏覽器發送數據

5、通信完成,TCP連接關閉

三、HTTPS的通信過程

https通信是建立在ssl連接層之上的請求和響應,客戶端將加密組件發送到服務端,服務端進行匹配后將數字證書等信息發送到客戶端,客戶端進行證書驗證,驗證通過后使用非對稱加密對數據的密鑰進行協商,協商后得到對稱的加密密鑰,然后使用對稱算法進行TCP鏈接,然后與客戶端進行三次握手后,進行數據傳輸,傳輸完成后,四次揮手,斷開鏈接,通信結束。

通信過程如下 :

1、客戶端和服務器端通過TCP建立連接,並發送https請求。

2、服務器響應請求,並將數字證書發送給客戶端,數字證書包括公共秘鑰、域名、申請證書的公司。

3、客戶端收到服務器端的數字證書之后,會驗證數字證書的合法性。

4、如果公鑰合格,那么客戶端會生成client key,一個用於進行對稱加密的密鑰,並用服務器的公鑰對客戶端密鑰進行非對稱加密。

5、客戶端會再次發起請求,將加密之后的客戶端密鑰發送給服務器。

6、服務器接收密文后,會用私鑰對其進行非對稱解密,得到客戶端秘鑰。並使用客戶端秘鑰進行對稱加密,生成密文並發送。

7、客戶端收到密文,並使用客戶端秘鑰進行解密,獲取數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM