標籤:

HTTP和HTTPS

HTTP和HTTPS

http協議運行在TCP之上,明文傳輸,客戶端和服務端都無法驗證對方的身份;Https是身披SSL(Secure Socket Layer)外殼的http,運行於TCP之上,是添加了加密和認證機制的HTTP。

一句話概括:HTTP+加密+認證+完整性保護=HTTPS

超文本傳輸協議HTTP被用於在web瀏覽器客戶端和網站伺服器之間傳遞信息,HTTP協議以明文方式發送內容,不提供任何方式的數據加密。

安全套接字層超文本傳輸協議HTTPS,為了數據傳輸的安全,HTTPS在HTTP的基礎上加入了SSL層,SSL依靠證書來驗證伺服器的身份,並為瀏覽器和伺服器之間的通信加密。加密需要一個密匙交換演算法(DH密匙交換演算法),雙方通過交換後的密匙加解密。

一:HTTPS協議的主要作用:

1.建立一個信息安全通道,來保證數據傳輸的安全;2.確認網站的真實性。

二:HTTPS和HTTP的主要區別:

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

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

3、http的連接很簡單,是無狀態的,信息是明文傳輸;https是HTTP運行在SSL/TLS之上,SSL/TLS運行在TCP之上,可進行加密傳輸、身份認證的網路協議,比http協議安全。

4、HTTPS協議握手階段比較費時,會使頁面的載入時間延長近50%,增加10%到20%的耗電。HTTP使用TCP三次握手建立連接,客戶端和伺服器需要交換3個包,HTTPS除了TCP的三個包,還要加上ssl握手需要的9個包,一共是12個包。

三:HTTPS的工作原理

客戶端在使用HTTPS方式與Web伺服器通信時有以下幾個步驟:

1、客戶端使用https的URL訪問web伺服器,要求與web伺服器建立SSL連接。

2、web伺服器收到客戶端請求後,會將網站的證書信息(證書中包含公鑰)傳送一份給客戶端。

3、客戶端的瀏覽器與web伺服器開始協商SSL連接的安全等級,也就是信息加密的等級。

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

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

6、web伺服器利用會話密鑰加密與客戶端之間進行的通信。

四:HTTP切換到HTTPS:

將網站從http切換到https,需要將頁面中所有的鏈接,例如js、css、圖片等鏈接都由http改為https。

在切換時可以做http和https的兼容:去掉頁面鏈接中的http頭部,這樣可以匹配http頭和https頭。例如:將baidu.com改為//baidu.com

推薦閱讀:

CVE-2018-1000156:GNU Patch任意代碼執行漏洞分析
16個合法練習黑客技術的網站
留美專業之計算機科學CS
七、圖 | 數據結構
如何學習新技術?

TAG:計算機科學 |