您好,登錄后才能下訂單哦!
這篇文章主要講解了“HTTP和HTTPS連接是如何建立的”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“HTTP和HTTPS連接是如何建立的”吧!
HTTP和HTTPS連接是如何建立的?
1、建立連接
HTTP和HTTPS都需要在建立連接的基礎上來進行數據傳輸,是基本操作
當客戶在瀏覽器中輸入網址后,瀏覽器會在瀏覽器DNS緩存,本地DNS緩存,和Hosts中尋找對應的記錄,如果沒有獲取到則會請求DNS服務來獲取對應的ip
當獲取到ip后,tcp連接會進行三次握手建立連接
2、tcp的三次揮手和四次揮手
過程簡圖
3、三次握手(建立連接)
***次:建立連接時,客戶端發送SYN包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;
第二次:服務器收到SYN包,向客戶端返回ACK(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RCVD狀態;
第三次:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。
完成三次握手,客戶端與服務器開始傳送數據,也就是ESTABLISHED狀態。
三次握手保證了不會建立無效的連接,從而浪費資源。
4、四次握手(斷開連接)
***次:TCP客戶端發送一個FIN,用來關閉客戶到服務器的數據傳送。
第二次:服務器收到這個FIN,它發回一個ACK,確認序號為收到的序號加1。和SYN一樣,一個FIN將占用一個序號。
第三次:服務器關閉客戶端的連接,發送一個FIN給客戶端。
第四次:客戶端發回ACK報文確認,并將確認序號設置為收到序號加1。
5、 HTTP請求過程
建立連接完畢以后客戶端會發送響應給服務端
服務端接受請求并且做出響應發送給客戶端
客戶端收到響應并且解析響應給用戶
HTTPS
在使用HTTPS是需要保證服務端配置正確了對應的安全證書
客戶端發送請求到服務端
服務端返回公鑰和證書到客戶端
客戶端接收后會驗證證書的安全性,如果通過則會隨機生成一個隨機數,用公鑰對其加密,發送到服務端
服務端接受到這個加密后的隨機數后會用私鑰對其解密得到真正的隨機數,隨后用這個隨機數當做私鑰對需要發送的數據進行對稱加密
客戶端在接收到加密后的數據使用私鑰(即生成的隨機值)對數據進行解密并且解析數據呈現結果給客戶
SSL加密建立
HTTPS是如何建立連接的,又是怎么進行加密的?
那HTTPS是如何建立連接的呢,怎么商量好加密密碼的呢?HTTPS 同 HTTP 一樣,首先建立起 TCP 連接,但是建立好之后并不是立即發出請求,索要具體的資源,而是先和對方商量加密的密碼。商量的加密密碼的過程就是建立 TSL 連接的過程。
其實并沒有建立真實的連接,只是在剛剛建立好的 TCP 連接上,包裹上一層加密協議而已。但是也被形象的稱作連接建立。具體建立方式如下:客服端發給服務器一個HELLO包,里面有我支持的加密協議列表。服務器收到后發送也給客戶端發送一個HELLO數據包,數據包內包涵服務器挑選的加密算法,還包含自己的數字證書信息。
你拿到他的數字證書信息之后就需要去向 CA 校驗證書,校驗成功后也知道了對方的公鑰,就該通知服務器,我們以后對稱加密的密碼是多少,當然,這個密碼是要用公鑰加密的。在這條消息發送之前,客戶端會先發送一條消息,告訴服務器,我下一個消息將使用你剛剛挑選的加密協議進行加密了,下一個消息是加密后的哦,不要搞錯。之后將對稱加密的密文發給服務器。服務器接收到之后,會根據對稱密鑰生成一系列復雜的加密算法,在傳輸給客服端,客戶端收到后會給服務器發送一個 Finished Message ,服務器收到消息后也回一個 Finished Message。這時,我們終于完成了加密的準備工作,一切加密方式和密鑰都商量好了,終于可以傳輸數據了。至此,TSL 建立連接的過程結束。
目前網站最安全的保護方式就是為網站部署SSL證書,SSL證書為我們提供了更加安全、隱私、健康的互聯網環境,SSL證書對傳輸中的數據進行加密,防止黑客的盜取甚至篡改數據,保護用戶的個人信息及企業機密數據。
感謝各位的閱讀,以上就是“HTTP和HTTPS連接是如何建立的”的內容了,經過本文的學習后,相信大家對HTTP和HTTPS連接是如何建立的這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。