1. 程式人生 > >【計算機網路】淺析HTTP與HTTPS的區別

【計算機網路】淺析HTTP與HTTPS的區別

                                     淺析HTTP與HTTPS的區別

一、兩者的基本概念

HTTP:全稱是HyperText Transfer Protocol,超文字傳輸協議,為網際網路中使用最為廣泛的協議。

HTTPS:全稱是Hyper Text Transfer Protocol over Secure Socket Layer,安全套接字層超文字傳輸協議。簡單來講就是就是安全的HTTP,即HTTPS=HTTP+SSL


二、兩者的主要區別

【1】埠

(1)HTTP協議預設採用80埠

(2)HTTPS採用443埠


【2】安全性

(1)HTTP協議以明文傳送資料,不提供任何方式的加密。因此HTTP協議安全性較差

(2)HTTPS協議使用額外的SSL協議,依靠伺服器端傳送來的證書來驗證伺服器身份,併為此次傳輸加密。即SSL的作用就是身份驗證與加密傳輸。由於HTTPS協議的安全性較高,很多銀行網站都採用這種方式進行資料的傳輸。


【3】連線效率

HTTP與HTTPS建立連線都需要與伺服器進行握手,但HTTPS協議在握手階段的需要做更多的事情,HTTPS需要比HTTP多發SSL的資料包。

因此耗時較為嚴重,頁面載入更加慢,耗能增加。


【4】使用成本

SSL證書需要進行申請,功能越強大的證書,費用越高。當然也可以自己製作證書,唯一的區別就是自己製作的證書在首次連線的過程中需要使用者確認,使用者體驗降低。而申請到的證書不需要使用者進行確認,由第三方進行擔保。


三、HTTPS的身份認證與加密傳輸的細節

(1)首先客戶端傳送HTTPS請求到服務端的443埠,服務端返回證書,作為身份憑證,實現身份驗證。證書內容包含頒發機構與過期時間等。

(2)客戶端解析證書,如果證書過期,客戶端彈出警告框,提示證書存在問題。如果證書不存在任何問題後,客戶端生成一個隨機數,也就是等會作為機密傳輸的私鑰,並用該證書對此隨機數進行加密,傳輸給服務端。

(3)服務端利用對應的私鑰對該加密資料進行解密,得到該隨機數具體的數值。

(4)在以後資料傳輸中,客戶端與服務端利用此隨機數對傳輸資料進行對稱加密,實現加密傳輸。