「1分鐘--前端05」HTTP那些事(下)

HTTPS

一.HTTP的問題

1.明文傳輸可能被竊聽;

2.認證問題,服務器和客戶端都可能是偽裝的,用戶的權限無法驗證;

3.可能被篡改,中間人攻擊;

二.HTTPS介紹

1.超文本傳輸安全協(xié)議;

2.基于TLS/SSL 傳輸層安全協(xié)議,可以防止竊聽和篡改;

3.TLS和SSL的關系:SSL是TLS的前身;TLS是SSL的標準化;

4.TLS/SSL協(xié)議的三個基本算法:

非對稱加密,對稱加密,散列函數(shù)

三個基本算法

5.信鴿例子,理解對稱和非對稱加密

(1)對稱加密:收發(fā)雙方規(guī)定密鑰,字母偏移5位加密;

A.加密的人也能解密,這就是對稱;

B.問題:密鑰需要傳遞,傳遞的過程中,可能被竊聽和篡改

(2)非對稱加密:

A.發(fā)送人留著鑰匙,把帶鎖(開啟狀態(tài))的盒子傳過去,加密的人鎖上;加密的人自己解不開,就是非對稱;

B.問題:可能被竊聽更換掉盒子

C.認證機構來給盒子做簽名,也就是我們HTTPS需要的網(wǎng)站證書;

6.總結:

非對稱可靠但慢,對稱的高效性但不可靠;配合使用

非對稱加密進行身份驗證和密鑰交換,對稱加密進行數(shù)據(jù)的加密;


三次握手四次揮手

三次握手

1.為什么要三次握手:

確保客戶端和服務端都能確認雙方收發(fā)正常;

(1)第一次握手:客戶端--什么都不能確認;服務端--確認對方發(fā)送正常;

(2)第二次:客戶端--自己發(fā)和收正常,對方收和發(fā)正常;服務端--對方發(fā),自己收;

(3)第三次:客戶端--自己發(fā)和收,對方收和發(fā);服務端--對方收發(fā),自己收發(fā);

2.為什么要發(fā)送特定的數(shù)據(jù)包?

三次握手的另一個目的是確認雙方都支持TCP協(xié)議;

(1)第一次,客戶端發(fā)seq=x

(2)第二次server猜測client要建立TCP,但不能確定,發(fā)送ack為x+1,seq = y;

(3)第三次,客戶端知道服務端支持TCP,知道自己要建立TCP,發(fā)送ack = y+1, seq = x+1;

最后,服務端知道客戶端支持TCP,確定雙方要建立TCP連接;

3.seq,ack,SYN和ACK是什么意思?

(1)seq: 數(shù)據(jù)包本身的序列號;

(2)ack: 期望對方繼續(xù)發(fā)送的那個數(shù)據(jù)包的序列號;

(3)SYN標志位,1表示請求連接;

(4)ACK就是ack后面加上的數(shù)字

四次揮手

4.為什么要四次揮手

(1)根本原因,客戶端發(fā)送FIN表示自己發(fā)完了數(shù)據(jù),但是還允許對方繼續(xù)發(fā)送剩下的數(shù)據(jù)。

(2)比如打電話:A:我沒啥說的了;B:知道了;可能還會說些;B:我也說完了;A:知道了;

5.數(shù)據(jù)包的格式

和握手同理,+1表示確認。

以上:http最常見的問題都總結好了

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

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

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