為什么有的網站用HTTP,有的網站用HTTPS?如果你注意的話,還可以看到HTTP跳轉到了HTTPS。為什么呢?今天,我們將學習http和https的區別。
HTTP:是互聯網上使用最廣泛的網絡協議。它是客戶端和服務器之間的請求和響應標準。它是一種將超文本從萬維網服務器傳輸到本地瀏覽器的傳輸協議。它可以提高瀏覽器的效率,減少網絡傳輸。
HTTPS:這是一個以安全為目標的HTTP通道。簡單來說就是HTTP的安全版本,也就是在HTTP下增加了SSL層。HTTPS的安全基礎是SSL,所以加密的細節需要SSL。
HTTP的特點是什么?
1.基于請求和響應:基本特征,客戶端發起請求,服務器響應。
2.無狀態:協議沒有客戶端的狀態存儲,也沒有事務處理的“內存”能力。例如,訪問網站需要重復的登錄操作。
3.簡單、快速、靈活,通信使用明文,請求和響應不會確認通信方,數據完整性無法保護。
4.無連接:由于無狀態特性,每個請求需要通過TCP三次握手揮動四次才能重新建立與服務器的連接。例如,如果客戶端在短時間內多次請求相同的資源,服務器無法區分它是否已經響應了用戶的請求,因此每次都需要花費不必要的時間和流量來再次響應請求。
下面是一個簡單的數據包捕獲實驗,用來觀察HTTP請求傳輸的數據:
動態IP模擬器
結果:通過HTTP協議傳輸的數據以明文形式顯示。
無國籍狀態的一些解決方案:
場景:訪問電商店鋪的用戶需要長時間使用,需要將用戶的HTTP通訊狀態保存一段時間,比如執行一次登錄操作,所有請求都不需要在30分鐘內再次登錄。
1.通過Cookie/會話技術。
2.HTTP/1.1(HTTP keep-alive)方法,只要任一端沒有明確提出斷開,就會保持TCP連接狀態,請求頭字段中的Connection: keep-alive表示使用了持久連接。
HTTPS有什么特點?
基于HTTP協議,SSL或TLS提供數據加密、身份驗證和數據完整性保護。
通過捕獲數據包,我們可以看到數據不是以明文傳輸的,HTTPS具有以下特征:
1.內容加密:使用混合加密技術,中間不能直接查看明文內容。
2.驗證身份:通過證書驗證的客戶端訪問自己的服務器。
3.保護數據完整性:防止傳輸的內容被中間商冒充或篡改。
混合加密:結合非對稱加密和對稱加密技術。客戶端使用對稱加密生成密鑰對傳輸的數據進行加密,然后使用非對稱加密公鑰對密鑰進行加密,因此網絡上傳輸的數據都是用私鑰加密的密文和用公鑰加密的私鑰,所以即使被黑客截獲,由于沒有私鑰,也無法獲得加密明文的私鑰,無法獲得明文數據。
Numbers通過單向散列函數對原始文本進行散列,并將待加密的明文摘要成一系列固定長度的密文(如128bit)。不同明文抽象出來的密文結果總是不一樣的,同一明文的摘要一定是一致的,即使知道了摘要也無法推導出明文。
數字簽名技術:數字簽名是基于公鑰加密系統,是公鑰加密技術的另一種應用。它將公鑰加密技術與數字摘要相結合,形成一種實用的數字簽名技術。
接收者可以確認發送者的真實身份;發件人不能拒絕隨后發送的郵件;接收者或非法者不能偽造或篡改信息。
動態IP模擬器
非對稱加密過程需要公鑰進行加密,那么公鑰從何而來呢?實際上,公鑰包含在數字證書中,通常由可信數字證書頒發機構CA在驗證服務器身份后頒發。證書包含密鑰對(公鑰和私鑰)和所有者標識信息。數字證書放置在服務器上,具有服務器認證和數據傳輸加密功能。
HTTP和HTTPS有什么區別?通過以上理解,我們可以深刻理解兩者的區別。簡單地說,HTTPS是HTTP的安全版本。然而,由于HTTPS的技術和成本,HTTPS目前還沒有得到廣泛應用。