- 資訊首頁(yè) > 網(wǎng)絡(luò )安全 >
- HTTP和HTTPS連接是如何建立的
這篇文章主要講解了“HTTP和HTTPS連接是如何建立的”,文中的講解內容簡(jiǎn)單清晰,易于學(xué)習與理解,下面請大家跟著(zhù)小編的思路慢慢深入,一起來(lái)研究和學(xué)習“HTTP和HTTPS連接是如何建立的”吧!
HTTP和HTTPS連接是如何建立的?
1、建立連接
HTTP和HTTPS都需要在建立連接的基礎上來(lái)進(jìn)行數據傳輸,是基本操作
當客戶(hù)在瀏覽器中輸入網(wǎng)址后,瀏覽器會(huì )在瀏覽器緩存,本地DNS緩存,和Hosts中尋找對應的記錄,如果沒(méi)有獲取到則會(huì )請求DNS服務(wù)來(lái)獲取對應的ip
當獲取到ip后,tcp連接會(huì )進(jìn)行三次握手建立連接
2、tcp的三次揮手和四次揮手
過(guò)程簡(jiǎn)圖
3、三次握手(建立連接)
***次:建立連接時(shí),客戶(hù)端發(fā)送SYN包(syn=j)到,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認;
第二次:服務(wù)器收到SYN包,向客戶(hù)端返回ACK(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RCVD狀態(tài);
第三次:客戶(hù)端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶(hù)端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。
完成三次握手,客戶(hù)端與服務(wù)器開(kāi)始傳送數據,也就是ESTABLISHED狀態(tài)。
三次握手保證了不會(huì )建立無(wú)效的連接,從而浪費資源。
4、四次握手(斷開(kāi)連接)
***次:TCP客戶(hù)端發(fā)送一個(gè)FIN,用來(lái)關(guān)閉客戶(hù)到服務(wù)器的數據傳送。
第二次:服務(wù)器收到這個(gè)FIN,它發(fā)回一個(gè)ACK,確認序號為收到的序號加1。和SYN一樣,一個(gè)FIN將占用一個(gè)序號。
第三次:服務(wù)器關(guān)閉客戶(hù)端的連接,發(fā)送一個(gè)FIN給客戶(hù)端。
第四次:客戶(hù)端發(fā)回ACK報文確認,并將確認序號設置為收到序號加1。
5、 HTTP請求過(guò)程
建立連接完畢以后客戶(hù)端會(huì )發(fā)送響應給服務(wù)端
服務(wù)端接受請求并且做出響應發(fā)送給客戶(hù)端
客戶(hù)端收到響應并且解析響應給用戶(hù)
HTTPS
客戶(hù)端發(fā)送請求到服務(wù)端
服務(wù)端返回公鑰和證書(shū)到客戶(hù)端
客戶(hù)端接收后會(huì )驗證證書(shū)的安全性,如果通過(guò)則會(huì )隨機生成一個(gè)隨機數,用公鑰對其加密,發(fā)送到服務(wù)端
服務(wù)端接受到這個(gè)加密后的隨機數后會(huì )用私鑰對其解密得到真正的隨機數,隨后用這個(gè)隨機數當做私鑰對需要發(fā)送的數據進(jìn)行對稱(chēng)加密
客戶(hù)端在接收到加密后的數據使用私鑰(即生成的隨機值)對數據進(jìn)行解密并且解析數據呈現結果給客戶(hù)
SSL加密建立
HTTPS是如何建立連接的,又是怎么進(jìn)行加密的?
那HTTPS是如何建立連接的呢,怎么商量好加密密碼的呢?HTTPS 同 HTTP 一樣,首先建立起 TCP 連接,但是建立好之后并不是立即發(fā)出請求,索要具體的資源,而是先和對方商量加密的密碼。商量的加密密碼的過(guò)程就是建立 TSL 連接的過(guò)程。
其實(shí)并沒(méi)有建立真實(shí)的連接,只是在剛剛建立好的 TCP 連接上,包裹上一層加密協(xié)議而已。但是也被形象的稱(chēng)作連接建立。具體建立方式如下:客服端發(fā)給服務(wù)器一個(gè)HELLO包,里面有我支持的加密協(xié)議列表。服務(wù)器收到后發(fā)送也給客戶(hù)端發(fā)送一個(gè)HELLO數據包,數據包內包涵服務(wù)器挑選的加密算法,還包含自己的數字證書(shū)信息。
你拿到他的數字證書(shū)信息之后就需要去向 CA 校驗證書(shū),校驗成功后也知道了對方的公鑰,就該通知服務(wù)器,我們以后對稱(chēng)加密的密碼是多少,當然,這個(gè)密碼是要用公鑰加密的。在這條消息發(fā)送之前,客戶(hù)端會(huì )先發(fā)送一條消息,告訴服務(wù)器,我下一個(gè)消息將使用你剛剛挑選的加密協(xié)議進(jìn)行加密了,下一個(gè)消息是加密后的哦,不要搞錯。之后將對稱(chēng)加密的密文發(fā)給服務(wù)器。服務(wù)器接收到之后,會(huì )根據對稱(chēng)密鑰生成一系列復雜的加密算法,在傳輸給客服端,客戶(hù)端收到后會(huì )給服務(wù)器發(fā)送一個(gè) Finished Message ,服務(wù)器收到消息后也回一個(gè) Finished Message。這時(shí),我們終于完成了加密的準備工作,一切加密方式和密鑰都商量好了,終于可以傳輸數據了。至此,TSL 建立連接的過(guò)程結束。
目前網(wǎng)站最安全的保護方式就是為網(wǎng)站部署,SSL證書(shū)為我們提供了更加安全、隱私、健康的互聯(lián)網(wǎng)環(huán)境,SSL證書(shū)對傳輸中的數據進(jìn)行加密,防止黑客的盜取甚至篡改數據,保護用戶(hù)的個(gè)人信息及企業(yè)機密數據。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站