HTTP與HTTPS的區別

什麼是 HTTPS?
HTTPS (基於安全套接字層的超文本傳輸協議 或者是 HTTP over SSL) 是一個 Netscape 開發的 Web 協議。
你也能夠說:HTTPS = HTTP + SSL
HTTPS 在 HTTP 應用層的基礎上使用安全套接字層做爲子層。
爲何須要 HTTPS ?
超文本傳輸協議 (HTTP) 是一個用來經過互聯網傳輸和接收信息的協議。HTTP 使用請求/響應的過程,所以信息可在服務器間快速、輕鬆並且精確的進行傳輸。當你訪問 Web 頁面的時候你就是在使用 HTTP 協議,但 HTTP 是不安全的,能夠輕鬆對竊聽你跟 Web 服務器之間的數據傳輸。在不少狀況下,客戶和服務器之間傳輸的是敏感歇息,須要防止未經受權的訪問。爲了知足這個要求,網景公司(Netscape)推出了 HTTPS,也就是基於安全套接字層的 HTTP 協議。
HTTP 和 HTTPS 的相同點
大多數狀況下,HTTP 和 HTTPS 是相同的,由於都是採用同一個基礎的協議,做爲 HTTP 或 HTTPS 客戶端——瀏覽器,設立一個鏈接到 Web 服務器指定的端口。當服務器接收到請求,它會返回一個狀態碼以及消息,這個迴應多是請求信息、或者指示某個錯誤發送的錯誤信息。系統使用統一資源定位器 URI 模式,所以資源能夠被惟一指定。而 HTTPS 和 HTTP 惟一不一樣的只是一個協議頭(https)的說明,其餘都是同樣的。
HTTP 和 HTTPS 的不一樣之處
  1. HTTP 的 URL 以 http:// 開頭,而 HTTPS 的 URL 以 https:// 開頭
  2. HTTP 是不安全的,而 HTTPS 是安全的
  3. HTTP 標準端口是 80 ,而 HTTPS 的標準端口是 443
  4. 在 OSI 網絡模型中,HTTP 工做於應用層,而 HTTPS 工做在傳輸層
  5. HTTP 無需加密,而 HTTPS 對傳輸的數據進行加密
  6. HTTP 無需證書,而 HTTPS 須要認證證書
HTTPS 如何工做?
使用 HTTPS 鏈接時,服務器要求有公鑰和簽名的證書。
當使用 https 鏈接,服務器響應初始鏈接,並提供它所支持的加密方法。做爲迴應,客戶端選擇一個鏈接方法,而且客戶端和服務器端交換證書驗證彼此身份。完成以後,在確保使用相同密鑰的狀況下傳輸加密信息,而後關閉鏈接。爲了提供 https 鏈接支持,服務器必須有一個公鑰證書,該證書包含通過證書機構認證的密鑰信息,大部分證書都是經過第三方機構受權的,以保證證書是安全的。
換句話說,HTTPS 跟 HTTP 同樣,只不過增長了  SSL
HTTP 包含以下動做:
  1. 瀏覽器打開一個 TCP 鏈接
  2. 瀏覽器發送 HTTP 請求到服務器端
  3. 服務器發送 HTTP 迴應信息到瀏覽器
  4. TCP 鏈接關閉
SSL 包含以下動做:
  1. 驗證服務器端
  2. 容許客戶端和服務器端選擇加密算法和密碼,確保雙方都支持
  3. 驗證客戶端(可選)
  4. 使用公鑰加密技術來生成共享加密數據
  5. 建立一個加密的 SSL 鏈接
  6. 基於該 SSL 鏈接傳遞 HTTP 請求
何時該使用 HTTPS?
銀行網站、支付網關、購物網站、登陸頁、電子郵件以及一些企業部門的網站應該使用 HTTPS,例如:
  • PayPal: https://www.paypal.com
  • Google AdSense: https://www.google.com/adsense/
若是某個網站要求你填寫信用卡信息,首先你要檢查該網頁是否使用 https 加密鏈接,若是沒有,那麼請不要輸入任何敏感信息如信用卡號。
瀏覽器集成
多數瀏覽器在收到一個無效證書的時候都會顯示警告信息,而一些老的瀏覽器會彈出對話框讓用戶選擇是否繼續瀏覽。新的瀏覽器通常在整個窗口顯示橫幅的警告信息,同時在地址欄上顯示該網站的安全信息。若是網站中包含加密和非加密的混合內容,多數瀏覽器會提示警告信息。
HTTPS的優勢
  儘管HTTPS並不是絕對安全,掌握根證書的機構、掌握加密算法的組織一樣能夠進行中間人形式的攻擊,但HTTPS還是現行架構下最安全的解決方案,主要有如下幾個好處:
  (1)使用HTTPS協議可認證用戶和服務器,確保數據發送到正確的客戶機和服務器;
  (2)HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全,可防止數據在傳輸過程當中不被竊取、改變,確保數據的完整性。
  (3)HTTPS是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增長了中間人攻擊的成本。
  (4)谷歌曾在2014年8月份調整搜索引擎算法,並稱「比起同等HTTP網站,採用HTTPS加密的網站在搜索結果中的排名將會更高」。
HTTPS的缺點
  雖說HTTPS有很大的優點,但其相對來講,仍是存在不足之處的:
  (1)HTTPS協議握手階段比較費時,會使頁面的加載時間延長近50%,增長10%到20%的耗電;
  (2)HTTPS鏈接緩存不如HTTP高效,會增長數據開銷和功耗,甚至已有的安全措施也會所以而受到影響;
  (3)SSL證書須要錢,功能越強大的證書費用越高,我的網站、小網站沒有必要通常不會用。
    (4)SSL證書一般須要綁定IP,不能在同一IP上綁定多個域名,IPv4資源不可能支撐這個消耗。
  (5)HTTPS協議的加密範圍也比較有限,在黑客攻擊、拒絕服務攻擊、服務器劫持等方面幾乎起不到什麼做用。最關鍵的,SSL證書的信用鏈體系並不安全,特別是在某些國家能夠控制CA根證書的狀況下,中間人攻擊同樣可行。
http切換到HTTPS
  若是須要將網站從http切換到https到底該如何實現呢?
     這裏須要將頁面中全部的連接,例如js,css,圖片等等連接都由http改成https。例如:http://www.baidu.com改成https://www.baidu.com
  BTW,這裏雖然將http切換爲了https,仍是建議保留http。因此咱們在切換的時候能夠作http和https的兼容,具體實現方式是,去掉頁面連接中的http頭部,這樣能夠自動匹配http頭和https頭。例如:將http://www.baidu.com改成//www.baidu.com。而後當用戶從http的入口進入訪問頁面時,頁面就是http,若是用戶是從https的入口進入訪問頁面,頁面即便https的。
相關文章
相關標籤/搜索