http協議和https協議
目錄
1、http協議
版本進化歷程:
1.0: 每次都要進行連接請求,才能進而傳輸數據,又斷開連接,不能重複利用已建立的連接。
1.1: 可以利用已建立的連接,因爲有keep-alive,可以使連接保持一段時間,也可以並行請求傳輸數據,但有上限。
存在的問題:(1)明文 沒有壓縮;(2)順序塊傳輸 速度慢,但有一個傳輸錯誤,則會重新傳這個,導致後面無法進行;(3)herder長;(4)server不能主動push
2.0:(1)進行二進制傳輸 有壓縮;(2)單連接+幀 亂序塊傳輸,速度快;(3)header進行壓縮;(4)server可以主動push
2、https協議
(1)對稱加密
(2)非對稱加密
(3)對稱+非對稱加密
對稱+非對稱也可能存在遭遇黑客,如下所示:
小結:
明文=裸奔
對稱:key唯一=明文
非對稱:S——>C不安全
對稱+非對稱:中間人
解決中間人問題:
(4)對稱+非對稱+CA
(5)https:對稱+非對稱+hash散列算法+CA
例:訪問百度
- C——>S:支持SSL版本、 非對稱算法 、隨機數1 (SSL:是套接字加密,不是證書)
- S——>C:假設就用SSL1.0 、對稱算法 、隨機數2、 證書
- C:證書認證
- C——>S:隨機數3 、hash(1,2)=xx對1、2步中的數進行hash算法得到一個xx發給S
- S:先驗證xx==hash(1,2)?——>再把前面的隨機數1、2、3用一個算法得到用於後面進行對稱加密的Key
- S——>C:hash(1,2,4)=zz對1,2,4步中的數進行hash算法得到一個zz發給C
- C:先驗證hash(1,2,4)==zz?——>再把前面的隨機數1、2、3用一個算法得到用於後面進行對稱加密的Key