Https與Http

\color{#FF3030}{基本概念:}
HTTP: 中文叫做超文本傳輸協(xié)議,是專門用來傳輸注入HTML的超媒體文檔等web內(nèi)容的協(xié)議,它是基于傳輸層的TCP協(xié)議的應(yīng)用層協(xié)議。
HTTPS:是以安全為目標(biāo)的 HTTP 通道,是 HTTP 的安全版。HTTPS 的安全基礎(chǔ)是 SSL。SSL 協(xié)議位于 提供安全支持。
\color{#FF3030}{SSL}:安全套接字協(xié)議(Secure Sockets Layer)包括
\color{#FF3030}{記錄協(xié)議:}為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等支持。
\color{#FF3030}{握手協(xié)議:}在記錄協(xié)議之上,用于實(shí)際通訊之前,雙方認(rèn)證,協(xié)商加密算法交換密鑰。


區(qū)別:
①HTTPS需要到CA申請(qǐng)證書,HTTP不需要。
②HTTP是明文傳輸,HTTPS是具有安全性的加密傳輸。
③連接方式不同,端口不同,HTTP:80 HTTPS:443
④HTTP連接簡(jiǎn)單,無狀態(tài)。HTTPS SSL+HTTP安全。
(無狀態(tài)的意思是其數(shù)據(jù)包的發(fā)送、傳輸和接收都是相互獨(dú)立的。無連接的意思是指通信雙方都不長(zhǎng)久的維持對(duì)方的任何信息。)


HTTPS工作原理
①客戶端向服務(wù)器發(fā)送請(qǐng)求,并傳送客戶端 SSL 協(xié)議的信息,以及其他服務(wù)器和客戶端之間通訊所需要的各種信息。
②服務(wù)端向用戶端傳送SSL協(xié)議相關(guān)信息,并且還向客戶端傳送自己的證書。
③客戶端利用服務(wù)端傳過來的信息驗(yàn)證服務(wù)器合法性,如果驗(yàn)證未通過,通訊斷開,驗(yàn)證通過進(jìn)行下一步。
④客戶端形成一個(gè)私鑰,并用服務(wù)器傳過來的公鑰加密(非對(duì)稱加密),傳給服務(wù)器。
⑤服務(wù)端使用私鑰將這個(gè)信息進(jìn)行解密,得到客戶端的私鑰,然后客戶端和服務(wù)端就可以通過這個(gè)私鑰進(jìn)行通信
⑥服務(wù)端將消息進(jìn)行對(duì)稱加密(簡(jiǎn)單來說就是講消息和私鑰進(jìn)行混合,除非知道私鑰否則服務(wù)進(jìn)行解密),私鑰正好只有客戶端和服務(wù)端知道。服務(wù)端將進(jìn)行對(duì)稱加密后的消息進(jìn)行傳送,客戶端使用私鑰進(jìn)行信息的解密。


一次完整的HTTP請(qǐng)求與響應(yīng)都發(fā)生了什么?
①瀏覽器會(huì)查找緩存,如果有緩存的話直接顯示
②查找本機(jī)host是否有對(duì)應(yīng)IP,如果沒有,通過DNS服務(wù)器獲取IP地址
③建立tcp鏈接(三次握手)
④鏈接建立后,瀏覽器向服務(wù)器發(fā)送請(qǐng)求命令
⑤服務(wù)器應(yīng)答
⑥瀏覽器根據(jù)數(shù)據(jù)進(jìn)行展示
⑦關(guān)閉tcp鏈接(四次揮手)(如果keep-alive,還會(huì)繼續(xù)保持連接)


TCP的三次握手
所謂三次握手,就是TCP連接的建立,必須是一方主動(dòng)打開,一方被動(dòng)打開。
①客戶端向服務(wù)端發(fā)送tcp報(bào)文。
②服務(wù)器端接收到客戶端的報(bào)文后,返回一段報(bào)文,發(fā)送給客戶端,表示服務(wù)器能正常接收數(shù)據(jù),同意創(chuàng)建連接。
③客戶端接收到服務(wù)端返回的報(bào)文,明確了數(shù)據(jù)正常,然后向服務(wù)器端發(fā)送最后一段TCP報(bào)文,明確溝通無誤,服務(wù)器端接收到這最后一段,連接建立成功。
簡(jiǎn)單理解
客戶端:服務(wù)器端你在不在?。?br> 服務(wù)器端:我在,客戶端你在不在啊?
客戶端:妥了,咱倆都在,開始嘮嗑吧!
至此,連接建立成功


TCP的四次揮手
所謂的四次揮手即TCP連接的釋放(解除)。連接的釋放必須是一方主動(dòng)釋放,另一方被動(dòng)釋放。
①客戶端想要釋放連接,想服務(wù)器端發(fā)送報(bào)文
②服務(wù)器端接收到報(bào)文,確認(rèn)了客戶端想要釋放連接,返回一段報(bào)文給客戶端
③服務(wù)端報(bào)文發(fā)送后,做好了釋放準(zhǔn)備,再次向客戶端發(fā)送報(bào)文
④客戶端接收到服務(wù)器端做好準(zhǔn)備的報(bào)文后,確認(rèn)服務(wù)器端已經(jīng)做好了釋放準(zhǔn)備,最后向服務(wù)器端發(fā)送報(bào)文,服務(wù)器端接收到報(bào)文后,斷開連接。
簡(jiǎn)單理解
客戶端:哎呀,聊的很久了,別聊了。
服務(wù)器端:行啊,那我準(zhǔn)備一下,地上瓜子皮收拾一下。
服務(wù)器端:好了,收拾利索了,明兒見。
客戶端:好嘞,明兒見。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容