HTTP和HTTPS的四大區別

2021-09-11 22:25:15 字數 2186 閱讀 1738

http和https的區別

在web開發學習中,我們會很頻繁的接觸到http這個協議。從概念上來說,超文字傳輸協議(http,hypertext transfer protocol)是網際網路上應用最為廣泛的一種網路協議。所有的www檔案都必須遵守這個標準。通俗來講,http就是瀏覽器和伺服器進行互動資料時,雙方都要遵守的資料格式規範。舉個例子,兩個人寫信,需要都遵守一些規則才能互相看懂對方的意思——開頭是對方稱呼,結尾是自己的落款,否則資料格式就亂套了,寫的信誰也看不懂寫的是什麼。

而https又是什麼呢,其實https就是在http的基礎上加了個s,也就是'secure',即安全。我們知道,http協議本身是沒有任何安全考慮的,資料以明文傳輸,get方式傳遞的引數甚至直接就在位址列上顯示出來,即使使用其他方式傳參,也能很輕易的就把資料抓包獲取到,讓一些心懷不軌的人所利用,甚至偽造請求傳送一些假資料,所以http的年代,大家都在自己想辦法解決資料安全問題,自己加密或者新增校驗等,而https就是用來從根本上解決這個問題的。那麼今天我們主要聊一聊 https 到底安全在哪。

從上圖可以看到,https 就是在 http 下加入了 ssl 層,從而保護了交換資料隱私和完整性,提供對**伺服器身份認證的功能,所以簡單來說它就是安全版的 http。ssl(secure sockets layer 安全套接層),及其繼任者傳輸層安全(transport layer security,tls)是為網路通訊提供安全及資料完整性的一種安全協議。tls與ssl在傳輸層對網路連線進行加密。現在隨著技術的發展,tls 得到了廣泛的應用,關於 ssl 與 tls 的差別,我們不用在意,只要知道 tls 是 ssl 的公升級版本就好。

一般來說,https 主要用途有三個:

一是通過證書等資訊確認**的真實性;

二是建立加密的資訊通道;

三是資料內容的完整性。

那麼加密的資訊通道又加密了哪些資訊呢?

賬號:cbssfaw

密碼:123djaosid

可是這個資料被黑客攔截盜竊了,那麼加密後,黑客得到的資料可能就是這樣的:

賬號:)》﹝'!#﹡﹡

密碼:$﹩¯﹔〈〉''

最後乙個就是驗證資料的完整性,當資料報經過無數次路由器**後會發生資料劫持,黑客將資料劫持後進行篡改,比如植入木馬。開啟https後黑客就無法對資料進行篡改,就算真的被篡改了,我們也可以檢測出問題。

而加密方式分為對稱加密和非對稱加密兩種。

對稱加密是指加密與解密的使用同乙個金鑰的加密演算法。目前常見的加密演算法有:des、aes、idea 等。

非對稱加密使用的是兩個金鑰,公鑰與私鑰,我們會使用公鑰對**賬號密碼等資料進行加密,再用私鑰對資料進行解密。這個公鑰會發給檢視**的所有人,而私鑰是只有**伺服器自己擁有的。目前常見非對稱加密演算法:rsa,dsa,dh等。

簡單的總結一下:

https和http的區別主要為以下四點:

一、https協議需要到ca申請證書,一般免費證書很少,需要交費。所以現在雖然都在提倡使用https而淘汰掉http,但是還是有大量的**由於成本問題,或者資料傳輸不是那麼敏感,所以依舊使用http作為傳輸協議。

二、http是超文字傳輸協議,資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。

三、http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。這個在我們伺服器端程式設計的時候比較重要,因為我們習慣把預設埠設定為80來監聽http很久了,所以如果使用了https的話,要扭轉一下觀念,不要習慣性的使用80埠了。

四、http的連線很簡單,是無狀態的;https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。

通過上文,我們已經知道,https 就是在 http 傳輸協議的基礎上對**進行認證,給予它獨一無二的身份證明,再對**資料進行加密,並對傳輸的資料進行完整性驗證。https 作為一種加密手段不僅加密了資料,還給了**一張身份證。 總之,https從各個角度去考慮了怎麼讓資料傳輸更安全的問題,這個's'新增的當之無愧。現在,大家對https和http的區別有了明確的認識了吧。

四 HTTP和HTTPS的區別

超文字傳輸協議http協議被用於在web瀏覽器和 伺服器之間傳遞資訊。http協議以明文方式傳送內容,不提供任何方式的資料加密,如果攻擊者擷取了web瀏覽器和 伺服器之間的傳輸報文,就可以直接讀懂其中的資訊,因此http協議不適合傳輸一些敏感資訊,比如信用卡號 密碼等。為了解決http協議的這一缺陷...

C的記憶體四大區

前提 四區 靜態區 用於存放所有的全域性變數和靜態變數。int a 10 靜態區int main 區 就是存放程式的執行 執行時該區內容不可修改。棧區 用於存放所有的區域性auto變數 非static,非register等 先進後出原則!需要說明的是,棧區通常比較小,以kb為單位!所以存在overs...

HTTPS和HTTP的區別

https secure hypertext transfer protocol 安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層 ssl 進行資訊交換,簡單來說它是http的安全版。它是由netscape開發並內置於其瀏覽器中,...