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頭。例如:將http://www.baidu.com改為//http://www.baidu.com。
推薦閱讀:
※CVE-2018-1000156:GNU Patch任意代碼執行漏洞分析
※16個合法練習黑客技術的網站
※留美專業之計算機科學CS
※七、圖 | 數據結構
※如何學習新技術?
TAG:計算機科學 |