1. 程式人生 > >2_HTTP與HTTPS的區別(20181226)

2_HTTP與HTTPS的區別(20181226)

2_HTTP與HTTPS的區別(20181226)


在這裡插入圖片描述


HTTP: 超文字傳輸協議 (HyperText Transfer Protocol)
HTTPS:安全套接字層超文字傳輸協議 (Hyper Text Transfer Protocol over Secure Socket Layer)


1. 從HTTP協議中衍生出的HTTPS協議

超文字傳輸協議HTTP協議被用於在Web瀏覽器和**網站伺服器

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

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

2. 基本概念

  1. HTTP:超文字傳輸協議(HyperText Transfer Protocol)。是網際網路上應用最為廣泛的一種網路協議,所有的www檔案都必須遵守這個標準。是一個客戶端和伺服器端請求和應答的標準(TCP),用於從www伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文字文件,還確定傳輸文件中的哪一部分,以及哪部分內容首先顯示(如文字先於圖形)等。

  2. HTTPS:安全套接字層超文字傳輸協議(Hyper Text Transfer Protocol over Secure Socket Layer)。以安全為目標的HTTP通道,簡單講是HTTP的安全版本,即HTTP下加入SSL(Secure Sockets Layer 安全套接層)層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

HTTPS和SSL支援使用X.509數字認證,如果需要的話使用者可以確認傳送者是誰,也就是說它的主要作用可以分為兩種:

(1)建立一個資訊保安的通道,來保證資料傳輸的安全;
(2)確認網站的真實性。

3. 具體區別

HTTP協議傳輸的資料都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私資訊非常不安全,為了保證這些隱私資料加密傳輸,網景公司設計了SSL(Sercure Socket Layer)協議用於對HTTP協議傳輸的資料進行加密,從而誕生了HTTPS。具體的區別如下:

1、HTTPS更安全:HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,要比HTTP協議的資訊明文傳輸安全;


2、HTTPS需要申請證書:HTTPS協議需要到CA申請證書,一般免費證書很少,需要交費,費用大概與.com域名差不多,每年需要大約幾十元的費用。而常見的HTTP協議則沒有這一項;


3、埠不同:HTTP使用的是大家最常見的80埠,而HTTPS連線使用的是443埠;


4、狀態不同:HTTP的連線很簡單,是無狀態的。而HTTPS協議是SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,要比HTTP協議安全;

4. HTTPS具體工作

HTTPS連線時,伺服器要求有公鑰和簽名的證書。使用HTTPS連線,伺服器響應初始連線,並提供它所支援的加密方法,作為迴應,客戶端選擇一個連線方法,並且客戶端和伺服器端交換證書驗證彼此身份,完成後在確保使用相同金鑰的情況下傳輸加密資訊,然後關閉連線,為了提供HTTPS連線支援,伺服器必須有一個公鑰證書,該證書包含經過證書機構認證的金鑰資訊,大部分證書都是通過第三方機構授權的以保證證書是安全的。

HTTPS跟HTTP一樣,只不過增加了SSL。

1、HTTP包含如下動作:

(1)瀏覽器開啟一個TCP連線

(2)瀏覽器傳送HTTP請求到伺服器端

(3)伺服器傳送HTTP迴應資訊到瀏覽器

(4)TCP連線關閉

2、SSL包含如下動作:

(1)驗證伺服器端;

(2)允許客戶端和伺服器端選擇加密演算法和密碼,確保雙方都支援

(3)驗證客戶端(可選)

(4)使用公鑰加密技術來生成共享加密資料

(5)建立一個加密的SSL連線

(6)基於該SSL連線傳遞HTTP請求

參考
1、https://blog.csdn.net/u012050154/article/details/52045511
2、http://www.runoob.com/w3cnote/http-vs-https.html