答:HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。
HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協議,與http主要區別在於:
#http是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議;
#http和https使用的是完全不同的連接方式用的端口也不一樣,前者是80,后者是443;
下面具體介紹一下HTTP和HTTPS協議:
首先說明一下:HTTP和HTTPS協議是應用層協議;
上圖充分表明:HTTP是應用層協議,並且HTTPS是在HTTP協議基礎上添加SSL等加密策略后的協議;
TLS/SSL中使用了非對稱加密,對稱加密以及HASH算法。
(1)Http協議
1)HTTP協議和TCP協議之間的區別聯系
①TPC/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸,而HTTP是應用層協議,主要解決如何包裝數據;
②HTTP的默認端口號是80,TCP/IP協議通信編程時端口號需要自己指定(例如socket編程);
③HTTP協議是在TCP/IP協議基礎上實現的,即HTTP數據包是經過TCP/IP協議實現傳輸的;
④HTTP是無狀態的短連接協議,TCP是有狀態的長連接協議;
HTTP是在有狀態長連接TCP/IP協議的基礎上實現的,為什么卻是無狀態短連接協議?
答:因為HTTP協議每次請求結束就會自動關閉連接,這樣就變成了短連接;
短連接又導致了該次請求相關信息的丟失,也就造成了HTTP協議對於前期事務處理沒有記憶能力,故為無狀態協議。
2)HTTP協議其完整的工作過程可分為四步:
①連接:首先客戶機與服務器需要建立連接(由TCP/IP握手連接實現)。只要單擊某個超級鏈接,HTTP的工作開始;
②請求:建立連接后,客戶機發送一個請求給服務器,請求方式的格式為:統一資源標識符(URL)、協議版本號,后邊是MIME信息包括請求修飾符、客戶機信息和可能的內容;
③應答:服務器接到請求后,給予相應的響應信息,其格式為一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,后邊是MIME信息包括服務器信息、實體信息和可能的內容。客戶端接收服務器所返回的信息通過瀏覽器顯示在用戶的顯示屏上;
④關閉:當應答結束后,瀏覽器和服務器關閉連接,以保證其他瀏覽器可以與服務器進行連接。
更完整的過程可能如下:
域名解析 --> 發起TCP的3次握手 --> 建立TCP連接后發起http請求 --> 服務器響應http請求,瀏覽器得到html代碼 --> 瀏覽器解析html代碼,並請求html代碼中的資源(如js、css、圖片等) --> 瀏覽器對頁面進行渲染呈現給用戶。
如果在以上過程中的某一步出現錯誤,那么產生錯誤的信息將返回到客戶端,有顯示屏輸出。對於用戶來說,這些過程是由HTTP自己完成的,用戶只要用鼠標點擊,等待信息顯示就可以了。
(2)Https協議
HTTPS握手過程包括五步:
1)瀏覽器請求連接;
2)服務器返回證書:證書里面包含了網站地址,加密公鑰,以及證書的頒發機構等信息。
3)瀏覽器收到證書后作以下工作:
a) 驗證證書的合法性;
b) 生成隨機(對稱)密碼,取出證書中提供的公鑰對隨機密碼加密;
c) 將之前生成的加密隨機密碼等信息發送給網站;
4)服務器收到消息后作以下的操作:
a) 使用自己的私鑰解密瀏覽器用公鑰加密后的消息,並驗證HASH是否與瀏覽器發來的一致;
b) 使用加密的隨機對稱密碼加密一段消息,發送給瀏覽器;
5)瀏覽器解密並計算握手消息的HASH:如果與服務端發來的HASH一致,此時握手過程結束,之后所有的通信數據將由之前瀏覽
器生成的隨機密碼並利用對稱加密算法進行加密。
注意:服務器有兩個密鑰,一個公鑰、一個私鑰,只有私鑰才可以解密公鑰加密的消息;
如圖:
或者如下圖:
HTTPS協議、SSL、和數字證書的關系介紹:
概述:對於HTTPS協議,所有的消息都是經過SSL協議方式加密,而支持加密的文件正是數字證書;
(1)SSL
SSL常用的加密算法:對稱密碼算法、非對稱密碼算法、散列算法;
SSL的加密過程:需要注意的是非對稱加解密算法的效率要比對稱加解密要低的多。所以SSL在握手過程中使用非對稱密碼算法來
協商密鑰,實際使用對稱加解密的方法對http內容加密傳輸;
(2)數字證書
數字證書是用於在INTERNET上標識個人或者機構身份的一種技術手段,它通過由一些公認的權威機構所認證,從而可以保證其
安全地被應用在各種場合。證書里面包含了網站地址,加密公鑰,以及證書的頒發機構等信息。