HTTP HTTPs背後的故事

2021-10-13 07:50:05 字數 1090 閱讀 9914

當訪問乙個**之後發生了什麼。

譬如說訪問 之後。

首先先說一下 http 時代,訪問 之後。

先說流程:

www.baidu.com.cn 轉化為對應的ip;

通過ip及埠號建立tcp連線傳輸資料。

需要把 www.baidu.com 轉換成對應的ip,轉換的過程需要dns伺服器協助。

由於http不加密導致中間的**都能夠看到傳輸的是什麼,非常很特別的不安全。因此還是希望能夠把中間的內容加密一下。

加密的話就分為對稱加密和非對稱加密兩種。

對稱加密特點是快,非對稱加密慢但是安全。

為了使用者體驗當然是越快越好了,但是這樣就有乙個怎麼讓兩方都知道用什麼金鑰的問題,因此設計了乙個操作即使用非對稱加密加密對稱加密的金鑰,然後雙方使用對稱加密的金鑰通訊。

具體流程如下:

這裡邊有個比較嚴重的問題就是,由於網際網路乙個請求會經過很多層**,因此客戶端收到的公鑰是否真的是伺服器發來的,而不是中間某層**替換過的,或者說子網內部是否有人假冒服務等情況。為了讓這個流程走通,又引入了數字證書。

數字證書分為根證書跟普通證書,數字證書是由ca機構頒發的,ca機構也分級,ca機構分級可以防止網際網路整體的私鑰暴露風險降低一些,也防止活幹不過來。

數字證書的內容包括:證書對應的公鑰、網域名稱、有效期、簽發機構、數字指紋等等,其中數字指紋是把其他東西給hash一下之後對生成的hash編碼使用機構自身的私鑰加密,客戶端收到的時候使用公鑰揭秘一下數字指紋,然後也把證書內部相同的東西給hash一下然後對比是否一致,如果沒問題,說明這個證書沒有修改過,就是這個**的。

但是證書也能偽造,那為什麼要信任從網路上獲取的這個證書呢。。。

一般作業系統或者瀏覽器內部都已經預製了ca機構的證書,這部分證書都是可信的。

這樣整體流程修改為:

證書型別一般寫的是 ssl/tls,那麼這兩種協議有啥區別呢。

其實最開始的協議是 ssl1.0 -> ssl2.0 -> ssl3.0,不過這三都有缺陷,具體是啥不太好說,然後為了彌補這個問題,搞出來了 tls1.0 -> tls1.1 -> tls1.2,但是由於歷史問題,目前大多沿用提一下ssl的說法,其實目前基本上都是使用的tls協議。

Linux背後的故事

上個世紀未,linux挾自由和開放的雄風狠狠火了一把,如今,經過幾年光景的歷練,linux並沒有像許多曾經紅火一時的新玩意兒那樣成為曇花一現的泡沫,而是變得更為務實和奮進,更值得我們用激賞的眼光去關注,用更大的熱忱去擁抱。linux的特點 linux是一套類unix的多使用者,多工作業系統,其伺服器...

Flappy Bird背後的故事

更多有價值的網際網路文章 曉煦分享 對於阮哈東的評價很多,懂玩家的開發者 幸運的開發者 靠zuobi成功的開發者 可能他同時具備以上3個特點,但不可忽略的是 酒香也怕巷子深 所以阮哈東還是乙個擅長營銷的開發者。google trends資料 但pewdiepie這種遊戲達人為什麼半年後才發現這款遊戲...

和 背後的故事

檢查值是否相等,檢查值和型別是否相等 這種說法並不準確。準確的來講應該是 允許強制型別轉換。例如42 42 42 會被強制轉換成42,所以最後 42 42的結果為true。基本型別和非基本型別在 比較的時候,非基本型別會被強制轉換成相同的基本型別,然後再進行比較。數字和字串比較的時候,字串會被強制轉...