大話HTTPS:探討優缺點及性能優化

HTTPS = HTTP + TLS/SSL加密 + 認證 + 完整性保護

在講 HTTPS 以前,咱們先來看看 HTTP 有哪些不足:算法

  • 使用明文通訊,內容可能會被竊聽
  • 不驗證通訊雙方身份,有可能遭遇假裝
  • 沒法證實報文的完整性,內容可能遭到篡改

爲了解決這些不足,HTTPS 應運而生,其相比 HTTP 多瞭如下特性:服務器

  • TLS/SSL內容加密
  • 數字證書(CA)驗明身份: 防範中間人攻擊
  • MD五、SHA-1等散列值方法防止信息篡改

雖然TLS/SSL採用公開密鑰這種非對稱加密方式,可是HTTPS並非所有使用非對稱加密,而是使用混合加密方式,即:公開密鑰(非對稱加密)+共享密鑰(非對稱加密)網絡

由於公開密鑰與共享密鑰加密相比,其處理速度要慢不少。因此HTTPS衝鋒利用了二者各自的優點,將多種方法組合起來用於通訊。在交換密鑰環節使用公開密鑰加密方式,以後創建的通訊交換報文階段則使用共享密鑰加密方式session

混合加密方式

一般咱們會認爲,使用HTTPS會致使網站加載速度變慢。實際上,只要咱們合理優化使用HTTPS過程,使用HTTPS可能會比使用HTTP還快!併發

使用HTTPS相比於HTTP所增長的延遲點:

  • HTTP 302 跳轉到 HTTPS 的耗時
  • CPU 進行 RSA 加解密運算的耗時
  • 請求和驗證 CA 所花的時間

對應的優化方式:

  • 使用 HSTS 技術,去掉從80跳轉到443的跳轉(HSTS使用的是內部307跳轉技術,不會產生多餘的網絡請求) PS:302 和 307 效果相同,只是307強制使用post
  • 使用專門的加解密硬件處理加解密,減輕CPU負擔。這樣不只減小了處理時間,所能承受的qps也會增長。
  • 減小證書鏈,減小 CA 請求時間
  • session複用,減小創建鏈接的次數

HTTPS自身對於性能的優化

  • SSL壓縮:除去 HTTP 的數據壓縮,SSL 對於數據也有一次壓縮,減小了傳輸時間
  • 使用HTTP/2:要使用HTTP/2就必需要使用 SSL/TLS,HTTPS 顯然是最適合使用的

使用 HTTP/2 的好處包括但不限於:post

  • 多路複用

    HTTP 2.0使用多路複用技術,使用一個TCP鏈接併發處理多個請求,不但節約了開銷並且可處理請求的數量也比HTTP 1.1大了不少。性能

    TCP鏈接有一個預熱和保護的過程,先檢查數據是否傳送成功,一旦成功過,則慢慢加大傳輸速度。所以使用一個鏈接能夠大大提升數據傳輸效率。優化

  • 頭部壓縮

    HTTP 1.1不支持header數據壓縮,HTTP 2.0使用HPACK算法對header的數據進行壓縮,使得數據傳輸更快。網站

  • 服務器推送

    當咱們對支持HTTP 2.0的服務器請求數據額時候,服務器會順便把一些客戶端須要的資源一塊兒推送到服務器,這種方式適用於加載靜態資源,節約帶寬。加密

相關文章
相關標籤/搜索