HTTP:是一個客戶端和服務器端請求和應答的標準(TCP),用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可使瀏覽器更加高效,使網絡傳輸減小。算法
HTTPS:是以安全爲目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,所以加密的詳細內容就須要SSL。(能夠理解爲瀏覽器
HTTPS協議由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。安全
HTTPS和HTTP的區別主要以下:服務器
HTTPS協議的主要做用能夠分爲兩種:一種是創建一個信息安全通道,來保證數據傳輸的安全;另外一種是確認網站的真實性。網絡
TLS 的完整過程須要三個算法(協議),密鑰交互算法,對稱加密算法,和消息認證算法網站
HTTPS 的總體過程分爲證書驗證和數據傳輸階段加密
服務器利用本身惟一的私鑰對客戶端發來的對稱祕鑰進行解密,在此過程當中,中間方沒法對其解密(即便是客戶端也沒法解密,由於只有服務器端擁有惟一的私鑰),保證了對稱祕鑰在收發過程當中的安全,此時,服務器端和客戶端擁有了一套徹底相同的對稱祕鑰。代理
最後,總結一下https傳輸過程:
1.客戶端發起 HTTPS 請求,服務端返回證書,客戶端對證書進行驗證,驗證經過後本地生成用於構造對稱加密算法的隨機數。
2.經過證書中的公鑰對隨機數進行加密傳輸到服務端(隨機對稱密鑰),服務端接收後經過私鑰解密獲得隨機對稱密鑰,以後的數據交互經過對稱加密算法進行加解密。(既有對稱加密,也有非對稱加密)ssl
爲何數據傳輸是用對稱加密?資源
答:HTTP的應用場景中一般端與端之間存在大量的交互,非對稱加密的加解密效率很是低。
另外,在 HTTPS的場景中只有服務端保存了私鑰,一對公私鑰只能實現單向的加解密,因此 HTTPS 中內容傳輸加密採起的是對稱加密
爲何須要證書?
答:防止「中間人」攻擊,同時能夠爲網站提供身份證實。
使用 HTTPS 會被抓包嗎?答:會被抓包,HTTPS 只防止用戶在不知情的狀況下通訊被監聽,若是用戶主動授信,是能夠構建「中間人」網絡,代理軟件能夠對傳輸內容進行解密。