http和https的區別

2022-09-04 09:48:07 字數 2661 閱讀 7371

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

為了解決http協議的這一缺陷,需要使用另一種協議:安全套接字層超文字傳輸協議https,為了資料傳輸的安全,https在http的基礎上加入了ssl協議,ssl依靠證書來驗證伺服器的身份,並為瀏覽器和伺服器之間的通訊加密。

一、http和https的基本概念

http:是網際網路上應用最為廣泛的一種網路協議,是乙個客戶端和伺服器端請求和應答的標準(tcp),用於從www伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。

https:是以安全為目標的http通道,簡單講是http的安全版,即http下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl。

二、http與https有什麼區別?

http協議傳輸的資料都是未加密的,也就是明文的,因此使用http協議傳輸隱私資訊非常不安全,為了保證這些隱私資料能加密傳輸,於是網景公司設計了ssl(secure sockets layer)協議用於對http協議傳輸的資料進行加密,從而就誕生了https。簡單來說,https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全。

https和http的區別主要如下:

1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。

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

3、http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。

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

三、https的工作原理

我們都知道https能夠加密資訊,以免敏感資訊被第三方獲取,所以很多銀行**或電子郵箱等等安全級別較高的服務都會採用https協議。

客戶端在使用https方式與web伺服器通訊時有以下幾個步驟,如圖所示。

(1)客戶使用https的url訪問web伺服器,要求與web伺服器建立ssl連線。

(2)web伺服器收到客戶端請求後,會將**的證書資訊(證書中包含公鑰)傳送乙份給客戶端。

(3)客戶端的瀏覽器與web伺服器開始協商ssl連線的安全等級,也就是資訊加密的等級。

(4)客戶端的瀏覽器根據雙方同意的安全等級,建立會話金鑰,然後利用**的公鑰將會話金鑰加密,並傳送給**。

(5)web伺服器利用自己的私鑰解密出會話金鑰。

(6)web伺服器利用會話金鑰加密與客戶端之間的通訊。

四、https的優點

儘管https並非絕對安全,掌握根證書的機構、掌握加密演算法的組織同樣可以進行中間人形式的攻擊,但https仍是現行架構下最安全的解決方案,主要有以下幾個好處:

(1)使用https協議可認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器;

(2)https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全,可防止資料在傳輸過程中不被竊取、改變,確保資料的完整性。

(3)https是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。

(4)谷歌曾在2023年8月份調整搜尋引擎演算法,並稱「比起同等http**,採用https加密的**在搜尋結果中的排名將會更高」。

五、https的缺點

雖然說https有很大的優勢,但其相對來說,還是存在不足之處的:

(1)https協議握手階段比較費時,會使頁面的載入時間延長近50%,增加10%到20%的耗電;

(2)https連線快取不如http高效,會增加資料開銷和功耗,甚至已有的安全措施也會因此而受到影響;

(3)ssl證書需要錢,功能越強大的證書費用越高,個人**、小**沒有必要一般不會用。

(4)ssl證書通常需要繫結ip,不能在同一ip上繫結多個網域名稱,ipv4資源不可能支撐這個消耗。

(5)https協議的加密範圍也比較有限,在黑客攻擊、拒絕服務攻擊、伺服器劫持等方面幾乎起不到什麼作用。最關鍵的,ssl證書的信用鏈體系並不安全,特別是在某些國家可以控制ca根證書的情況下,中間人攻擊一樣可行。

六、http切換到https

如果需要將**從http切換到https到底該如何實現呢?

btw,這裡雖然將http切換為了https,還是建議保留http。所以我們在切換的時候可以做http和https的相容,具體實現方式是,去掉頁面鏈結中的http頭部,這樣可以自動匹配http頭和https頭。例如:將改為然後當使用者從http的入口進入訪問頁面時,頁面就是http,如果使用者是從https的入口進入訪問頁面,頁面即使https的。

內容**

豆豆蛙向大神學習

HTTPS和HTTP的區別

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

HTTPS和HTTP的區別

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

http和https的區別

在url前加https 字首表明是用ssl加密的。你的電腦與伺服器之間收發的資訊傳輸將更加安全。web伺服器啟用ssl需要獲得乙個伺服器證書並將該證書與要使用ssl的伺服器繫結。http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。http的連線很簡單,是無狀態的...