開放、平等、協(xié)作、快速、分享
HTTPS是在HTTP的基礎上和ssl/tls證書結(jié)合起來的一種協(xié)議,保證了傳輸過程中的安全性,減少了被惡意劫持的可能.很好的解決了解決了http的三個缺點(被監(jiān)聽、被篡改、被偽裝)
對稱加密
即加密的密鑰和解密的密鑰相同,
非對稱加密
非對稱加密將密鑰分為公鑰和私鑰,公鑰可以公開,私鑰需要保密,客戶端公鑰加密的數(shù)據(jù),服務端可以通過私鑰來解密
HTTP和HTTPS都需要在建立連接的基礎上來進行數(shù)據(jù)傳輸,是基本操作
當客戶在瀏覽器中輸入網(wǎng)址的并且按下回車,瀏覽器會在瀏覽器DNS緩存,本地DNS緩存,和Hosts中尋找對應的記錄,如果沒有獲取到則會請求DNS服務來獲取對應的ip
當獲取到ip后,tcp連接會進行三次握手建立連接
第一次:建立連接時,客戶端發(fā)送SYN包(syn=j)到服務器,并進入SYN_SEND狀態(tài),等待服務器確認;
第二次:服務器收到SYN包,向客戶端返回ACK(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RCVD狀態(tài);
第三次:客戶端收到服務器的SYN+ACK包,向服務器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務器進入ESTABLISHED狀態(tài),完成三次握手。
完成三次握手,客戶端與服務器開始傳送數(shù)據(jù),也就是ESTABLISHED狀態(tài)。
三次握手保證了不會建立無效的連接,從而浪費資源。
第一次: TCP客戶端發(fā)送一個FIN,用來關閉客戶到服務器的數(shù)據(jù)傳送。
第二次:服務器收到這個FIN,它發(fā)回一個ACK,確認序號為收到的序號加1。和SYN一樣,一個FIN將占用一個序號。
第三次:服務器關閉客戶端的連接,發(fā)送一個FIN給客戶端。
第四次:客戶端發(fā)回ACK報文確認,并將確認序號設置為收到序號加1。
建立連接完畢以后客戶端會發(fā)送響應給服務端
服務端接受請求并且做出響應發(fā)送給客戶端
客戶端收到響應并且解析響應響應給客戶
在使用HTTPS是需要保證服務端配置正確了對應的安全證書
客戶端發(fā)送請求到服務端
服務端返回公鑰和證書到客戶端
客戶端接收后會驗證證書的安全性,如果通過則會隨機生成一個隨機數(shù),用公鑰對其加密,發(fā)送到服務端
服務端接受到這個加密后的隨機數(shù)后會用私鑰對其解密得到真正的隨機數(shù),隨后用這個隨機數(shù)當做私鑰對需要發(fā)送的數(shù)據(jù)進行對稱加密
客戶端在接收到加密后的數(shù)據(jù)使用私鑰(即生成的隨機值)對數(shù)據(jù)進行解密并且解析數(shù)據(jù)呈現(xiàn)結(jié)果給客戶
SSL加密建立
上一篇:圖解SSL/TLS協(xié)議