深刻學習這個東西前,咱們先來從維基百科上看看它倆的概念。
HTTP:超文本傳輸協議(英文:HyperText Transfer Protocol,縮寫:HTTP)是一種用於分佈式、協做式和超媒體信息系統的應用層協議[1]。HTTP是萬維網的數據通訊的基礎。設計HTTP最初的目的是爲了提供一種發佈和接收HTML頁面的方法。經過HTTP或者HTTPS協議請求的資源由統一資源標識符(Uniform Resource Identifiers,URI)來標識。
HTTPS:超文本傳輸安全協議(英語:Hypertext Transfer Protocol Secure,縮寫:HTTPS,常稱爲HTTP over TLS,HTTP over SSL或HTTP Secure)是一種經過計算機網絡進行安全通訊的傳輸協議。HTTPS經由HTTP進行通訊,但利用SSL/TLS來加密數據包。HTTPS開發的主要目的,是提供對網站服務器的身份認證,保護交換數據的隱私與完整性。這個協議由網景公司(Netscape)在1994年首次提出,隨後擴展到互聯網上。歷史上,HTTPS鏈接常常用於萬維網上的交易支付和企業信息系統中敏感信息的傳輸。在2000年代晚期和2010年代早期,HTTPS開始普遍使用於保護全部類型網站上的網頁真實性,保護帳戶和保持用戶通訊,身份和網絡瀏覽的私密性。算法
1,從上面概念也能夠看出來HTTP是不安全的,且攻擊者經過監聽和中間人攻擊等手段,能夠獲取網站賬戶和敏感信息等。HTTPS被設計爲可防止前述攻擊,並在正確配置時被認爲是安全的。
2,HTTP的URL由「http://」起始且默認使用端口80,而HTTPS的URL由「https://」起始且默認使用端口443。
3,HTTP協議運行在TCP之上,全部傳輸的內容都是明文,客戶端和服務器端都沒法驗證對方的身份。HTTPS是運行在SSL/TLS之上的HTTP協議,SSL/TLS運行在TCP之上。全部傳輸的內容都通過加密,加密採用對稱加密,但對稱加密的密鑰用服務器方的證書進行了非對稱加密。
1)對稱加密:密鑰只有一個,加密解密爲同一個密碼,且加解密速度快,典型的對稱加密算法有DES、AES等;
2)非對稱加密:密鑰成對出現(且根據公鑰沒法推知私鑰,根據私鑰也沒法推知公鑰),加密解密使用不一樣密鑰(公鑰加密須要私鑰解密,私鑰加密須要公鑰解密),相對對稱加密速度較慢,典型的非對稱加密算法有RSA、DSA等。
瀏覽器
你們很明顯發現目前大部分網站使用的仍是http協議,下面咱們經過一個圖片很容易的瞭解一下網站訪問的一個過程。
安全
(1)客戶使用HTTPS的URL訪問Web服務器,要求與Web服務器創建SSL鏈接。
(2)Web服務器收到客戶端請求後,會將網站的證書信息(證書中包含公鑰)傳送一份給客戶端。
(3)客戶端的瀏覽器與Web服務器開始協商SSL/TLS鏈接的安全等級,也就是信息加密的等級。
(4)客戶端的瀏覽器根據雙方贊成的安全等級,創建會話密鑰,而後利用網站的公鑰將會話密鑰加密,並傳送給網站。
(5)Web服務器利用本身的私鑰解密出會話密鑰。
(6)Web服務器利用會話密鑰加密與客戶端之間的通訊。服務器
(1)客戶端產生的密鑰只有客戶端和服務器端能獲得;
(2)加密的數據只有客戶端和服務器端才能獲得明文;
(3)客戶端到服務端的通訊是安全的。
另外谷歌曾在2014年8月份調整搜索引擎算法,並稱「比起同等HTTP網站,採用HTTPS加密的網站在搜索結果中的排名將會更高」。網絡
咱們說了這麼多HTTPS的優勢,難道它就沒有缺點或者說是侷限嗎?固然有,畢竟萬物不可完美!
1,HTTPS比HTTP耗費更多服務器資源(https其實就是建構在SSL/TLS之上的 http協議,因此要比較https比http多用多少服務器資源,主要看SSL/TLS自己消耗多少服務器資源。)
分佈式