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