HTTP和HTTPS詳解。

一,HTTP和HTTPS基本概念

  深刻學習這個東西前,咱們先來從維基百科上看看它倆的概念。
  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開始普遍使用於保護全部類型網站上的網頁真實性,保護帳戶和保持用戶通訊,身份和網絡瀏覽的私密性。面試

二,HTTP和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等。
  TLS/SSL算法

三,HTTPS工做原理

下面看一下網站訪問過程:

  你們很明顯發現目前大部分網站使用的仍是http協議,下面咱們經過一個圖片很容易的瞭解一下網站訪問的一個過程。
網站訪問過程瀏覽器

瞭解完網站訪問後咱們來看一下使用HTTPS的工做原理

HTTPS的工做原理

  (1)客戶使用HTTPS的URL訪問Web服務器,要求與Web服務器創建SSL鏈接。
  (2)Web服務器收到客戶端請求後,會將網站的證書信息(證書中包含公鑰)傳送一份給客戶端。
  (3)客戶端的瀏覽器與Web服務器開始協商SSL/TLS鏈接的安全等級,也就是信息加密的等級。
  (4)客戶端的瀏覽器根據雙方贊成的安全等級,創建會話密鑰,而後利用網站的公鑰將會話密鑰加密,並傳送給網站。
  (5)Web服務器利用本身的私鑰解密出會話密鑰。
  (6)Web服務器利用會話密鑰加密與客戶端之間的通訊。安全

從上面能夠總結出HTTPS的優勢:

  (1)客戶端產生的密鑰只有客戶端和服務器端能獲得;
  (2)加密的數據只有客戶端和服務器端才能獲得明文;
  (3)客戶端到服務端的通訊是安全的。
  另外谷歌曾在2014年8月份調整搜索引擎算法,並稱「比起同等HTTP網站,採用HTTPS加密的網站在搜索結果中的排名將會更高」。服務器

四,HTTPS的侷限/缺點

  咱們說了這麼多HTTPS的優勢,難道它就沒有缺點或者說是侷限嗎?固然有,畢竟萬物不可完美!
  1,HTTPS比HTTP耗費更多服務器資源(https其實就是建構在SSL/TLS之上的 http協議,因此要比較https比http多用多少服務器資源,主要看SSL/TLS自己消耗多少服務器資源。)
HTTPS比HTTP
  2,耗費的資源多,過程也複雜,想固然訪問不如HTTP高效。大流量網站非必要也不會採用,流量成本過高。
  3,HTTPS並不能防止站點被網絡蜘蛛抓取。在某些情形中,被加密資源的URL可僅經過截獲請求和響應的大小推得,這就可以使攻擊者同時知道明文(公開的靜態內容)和密文(被加密過的明文),從而使選擇密文攻擊成爲可能。
  4,SSL證書須要錢,功能越強大的證書費用越高,我的網站、小網站沒有必要通常不會用。
  5,SSL證書一般須要綁定IP,不能在同一IP上綁定多個域名,IPv4資源不可能支撐這個消耗。微信

歡迎關注個人微信公衆號:「Java面試通關手冊」(堅持原創,分享美文,分享各類Java學習資源,面試題,以及企業級Java實戰項目回覆關鍵字免費領取):
微信公衆號網絡

相關文章
相關標籤/搜索