https://www.cnblogs.com/heluan/p/8620312.html
多路復用原理
HTTP1.0萨螺、HTTP2.0窄做、HTTP 3.0及HTTPS簡要介紹
區(qū)別
http1.0和http1.1的主要區(qū)別如下:
1愧驱、緩存處理:1.1添加更多的緩存控制策略(如:Entity tag,If-Match)
2椭盏、網(wǎng)絡連接的優(yōu)化:1.1支持斷點續(xù)傳
3组砚、錯誤狀態(tài)碼的增多:1.1新增了24個錯誤狀態(tài)響應碼,豐富的錯誤碼更加明確各個狀態(tài)
4掏颊、Host頭處理:支持Host頭域糟红,不在以IP為請求方標志
5、長連接:減少了建立和關閉連接的消耗和延遲乌叶。
http1.1和http2.0的主要區(qū)別:
1盆偿、新的傳輸格式:2.0使用二進制格式,1.0依然使用基于文本格式
2准浴、多路復用:連接共享事扭,不同的request可以使用同一個連接傳輸(最后根據(jù)每個request上的id號組合成正常的請求)
3、header壓縮:由于1.X中header帶有大量的信息乐横,并且得重復傳輸求橄,2.0使用encoder來減少需要傳輸?shù)膆earder大小
4今野、服務端推送:同google的SPDUY(1.0的一種升級)一樣
5、http1.1默認使用長鏈接罐农,避免了連接建立和釋放的開銷条霜,不允許同時存在兩個并行的響應
Https和證書原理
Https現(xiàn)在基本已經(jīng)覆蓋所有的http請求了
在沒有經(jīng)過任何加密手段的HTTP通信中,面臨著三大危險:消息監(jiān)聽涵亏、消息篡改宰睡、冒充身份 。
證書驗證
1.服務器向證書機構申請證書气筋,提供自己的域名夹厌、地址、公鑰信息裆悄。
2.證書機構對服務器的信息使用hash算法得出一份128位的摘要矛纹,并對這份摘要使用證書機構的私鑰進行非對稱加密得到數(shù)字證書簽名。
3.證書機構把服務器信息(明文是經(jīng)過hash算法得出的128位摘要)+數(shù)字簽名+證書機構信息(包含證書機構公鑰)發(fā)送給服務器光稼。
4.客戶端請求服務器時或南,服務器把證書返回給客戶端。
客戶端驗證證書
1.客戶端拿到證書艾君,得到服務器信息(明文)采够、數(shù)字簽名、證書機構信息冰垄。
2.客戶端對服務器信息進行hash算法計算得到一份摘要S1蹬癌。
3.客戶端使用證書機構提供的公鑰對數(shù)字簽名進行解密得到S2。
4.對比S1和S2可辨別證書是否來自服務器且沒有經(jīng)過篡改虹茶。
流程圖
Server提供(域名逝薪、地址、公鑰信息)---->CA機構--->hash算法(服務器信息得出128位摘要)--->CA私鑰非對稱加密(數(shù)字證書)----->CA把(服務器信息+數(shù)字簽名+CA公鑰)發(fā)送------>Server
Client--->Server---->證書---->Client--->服務器信息進行hash算法得到S1---->使用CA公鑰對數(shù)字簽名解密---->S2---->對比S1/S2確認證書可靠性蝴罪。
為什么對比S1/S2的一致性可以確認證書的可靠性
- 黑客是否可以使用自己的秘鑰加密董济,并把證書機構的公鑰修改成自己的公鑰?
1.證書機構不多要门,系統(tǒng)會內置根證書機構的信息虏肾,包括的這些機構的公鑰,這些公鑰一定程度上是安全可信任的欢搜》夂溃客戶端可以使用公鑰對數(shù)字簽名進行解密
2.系統(tǒng)預裝證書機構是有限的,所以有二級證書機構炒瘟,二級證書機構由根證書機構簽發(fā)吹埠。二級證書再給服務器簽發(fā)證書。
二級證書驗證流程
1.根證書給二級證書簽發(fā)的時候也會下發(fā)一份數(shù)字證書,包含了二級證書機構信息藻雌、數(shù)字簽名雌续、根證書機構信息。
2.服務的數(shù)字證書包含二級證書機構的數(shù)字證書胯杭。
3.客戶端使用根證書的公鑰對二級證書的數(shù)字簽名進行解密得到摘要S2進行對比驯杜。得到二級證書機構的公鑰。
4.使用二級證書機構的公鑰對服務器證書進行驗證~
5.如果有3級做个、4級也是同理循環(huán)
注意事項
1.證書并不是直接對服務器信息進行加密鸽心,而是利用hash算法得到服務器摘要,再進行加密的居暖。
總結
http要解決的是網(wǎng)絡安全問題
- 防止腳下監(jiān)聽:加密
- 防止消息篡改:CA證書hash算法
- 驗證身份:使用數(shù)字證書