一、 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、客戶端收到密文,並使用客戶端秘鑰進行解密,獲取數據。