成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大型網站的HTTPS實踐之HTTPS對性能的影響

網絡 網絡管理
HTTPS在保護用戶隱私,防止流量劫持方面發揮著非常關鍵的作用,但與此同時,HTTPS也會降低用戶訪問速度,增加網站服務器的計算資源消耗。

1 前言

HTTPS在保護用戶隱私,防止流量劫持方面發揮著非常關鍵的作用,但與此同時,HTTPS也會降低用戶訪問速度,增加網站服務器的計算資源消耗。

本文主要介紹https對用戶體驗的影響。

本文最早發表于百度運維部官方博客

2 HTTPS對訪問速度的影響

在介紹速度優化策略之前,先來看下HTTPS對速度有什么影響。影響主要來自兩方面:

1. 協議交互所增加的網絡RTT(round trip time)。

2. 加解密相關的計算耗時。

下面分別介紹一下。

2.1 網絡耗時增加

由于 HTTP和HTTPS都需要DNS解析,并且大部分情況下使用了DNS緩存,為了突出對比效果,忽略主域名的DNS解析時間。

用戶使用HTTP協議訪問http://www.baidu.com(或者www.baidu.com)時會有如下網絡上的交互耗時:

 

[[133184]]

 

可見,用戶只需要完成TCP三次握手建立TCP連接就能夠直接發送HTTP請求獲取應用層數據,此外在整個訪問過程中也沒有需要消耗計算資源的地方。

接下來看HTTPS的訪問過程,相比HTTP要復雜很多,在部分場景下,使用HTTPS訪問有可能增加7個RTT。如下圖:

 

[[133185]]

 

HTTPS***請求需要的網絡耗時解釋如下:

1. 三次握手建立TCP連接。耗時一個RTT。

2. 使用HTTP發起GET請求,服務端返回302跳轉到https://www.baidu.com。需要一個RTT以及302跳轉延時。

a) 大部分情況下用戶不會手動輸入https://www.baidu.com來訪問HTTPS,服務端只能返回302強制瀏覽器跳轉到https。

b) 瀏覽器處理302跳轉也需要耗時。

3. 三次握手重新建立TCP連接。耗時一個RTT。

a) 302跳轉到HTTPS服務器之后,由于端口和服務器不同,需要重新完成三次握手,建立TCP連接。

4. TLS完全握手階段一。耗時至少一個RTT。

a) 這個階段主要是完成加密套件的協商和證書的身份認證。

b) 服務端和瀏覽器會協商出相同的密鑰交換算法、對稱加密算法、內容一致性校驗算法、證書簽名算法、橢圓曲線(非ECC算法不需要)等。

c) 瀏覽器獲取到證書后需要校驗證書的有效性,比如是否過期,是否撤銷。#p#

5. 解析CA站點的DNS。耗時一個RTT。

a) 瀏覽器獲取到證書后,有可能需要發起OCSP或者CRL請求,查詢證書狀態。

b) 瀏覽器首先獲取證書里的CA域名。

c) 如果沒有命中緩存,瀏覽器需要解析CA域名的DNS。

6. 三次握手建立CA站點的TCP連接。耗時一個RTT。

a) DNS解析到IP后,需要完成三次握手建立TCP連接。

7. 發起OCSP請求,獲取響應。耗時一個RTT。

8. 完全握手階段二,耗時一個RTT及計算時間。

a) 完全握手階段二主要是密鑰協商。

9. 完全握手結束后,瀏覽器和服務器之間進行應用層(也就是HTTP)數據傳輸。

當然不是每個請求都需要增加7個RTT才能完成HTTPS***請求交互。大概只有不到0.01%的請求才有可能需要經歷上述步驟,它們需要滿足如下條件:

1. 必須是***請求。即建立TCP連接后發起的***個請求,該連接上的后續請求都不需要再發生上述行為。

2. 必須要發生完全握手,而正常情況下80%的請求能實現簡化握手。

3. 瀏覽器需要開啟OCSP或者CRL功能。Chrome默認關閉了ocsp功能,firefox和IE都默認開啟。

4. 瀏覽器沒有命中OCSP緩存。Ocsp一般的更新周期是7天,firefox的查詢周期也是7天,也就說是7天中才會發生一次ocsp的查詢。

5. 瀏覽器沒有命中CA站點的DNS緩存。只有沒命中DNS緩存的情況下才會解析CA的DNS。

2.2 計算耗時增加

上節還只是簡單描述了HTTPS關鍵路徑上必須消耗的純網絡耗時,沒有包括非常消耗CPU資源的計算耗時,事實上計算耗時也不小(30ms以上),從瀏覽器和服務器的角度分別介紹一下:

1, 瀏覽器計算耗時

a) RSA證書簽名校驗,瀏覽器需要解密簽名,計算證書哈希值。如果有多個證書鏈,瀏覽器需要校驗多個證書。

b) RSA密鑰交換時,需要使用證書公鑰加密premaster。耗時比較小,但如果手機性能比較差,可能也需要1ms的時間。

c) ECC密鑰交換時,需要計算橢圓曲線的公私鑰。

d) ECC密鑰交換時,需要使用證書公鑰解密獲取服務端發過來的ECC公鑰。

e) ECC密鑰交換時,需要根據服務端公鑰計算master key。

f) 應用層數據對稱加解密。

g) 應用層數據一致性校驗。

2, 服務端計算耗時

a) RSA密鑰交換時需要使用證書私鑰解密premaster。這個過程非常消耗性能。

b) ECC密鑰交換時,需要計算橢圓曲線的公私鑰。

c) ECC密鑰交換時,需要使用證書私鑰加密ECC的公鑰。

d) ECC密鑰交換時,需要根據瀏覽器公鑰計算共享的master key。

e) 應用層數據對稱加解密。

f) 應用層數據一致性校驗。

由于客戶端的CPU和操作系統種類比較多,所以計算耗時不能一概而論。手機端的HTTPS計算會比較消耗性能,單純計算增加的延遲至少在50ms以上。PC端也會增加至少10ms以上的計算延遲。

服務器的性能一般比較強,但由于RSA證書私鑰長度遠大于客戶端,所以服務端的計算延遲也會在5ms以上。

3 結束語

本系列的后續文章將進一步解釋針對性的優化措施。

責任編輯:藍雨淚 來源: CSDN博客
相關推薦

2017-07-25 10:57:05

2017-09-11 16:34:00

2024-08-23 09:02:56

2023-09-26 09:42:00

2021-01-27 12:40:09

NginHTTPS前端

2022-11-17 08:00:18

JavaScript錯誤性能

2022-12-15 08:00:38

JavaScript錯誤性能

2015-06-15 10:16:25

2012-09-29 10:09:19

網站架構后臺構建架構

2017-11-02 11:05:20

HTTP網站HTTPS網站免費

2012-01-16 09:54:37

大型網站

2014-12-08 10:37:54

HTTPS

2022-03-22 09:16:24

HTTPS數據安全網絡協議

2015-02-05 09:25:51

HTTPSSPDYHTTP2

2012-05-07 08:18:42

程序日志性能

2018-07-30 13:19:05

網站HTTPHTTPS

2024-05-08 08:59:02

2011-06-02 17:15:21

SEO搜索引擎

2021-01-26 00:30:05

HTTPSWordPress網站網站安全

2021-12-26 15:19:39

HTTPS網絡協議網絡傳輸
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人在线电影在线观看 | 午夜影院在线 | 久久精品91久久久久久再现 | 久久久精品高清 | 中文字幕日韩欧美一区二区三区 | 日韩国产在线 | 欧美日韩黄| 久久精品久久久 | 午夜影院在线观看视频 | 一区二区三区在线电影 | 久久精品亚洲一区 | 国产91精品久久久久久久网曝门 | 国产午夜精品一区二区三区四区 | 韩国av网站在线观看 | 日本免费一区二区三区视频 | 羞羞视频免费在线观看 | 国产精品视频不卡 | 岛国一区 | 99精品欧美一区二区三区综合在线 | 久久久久久久网 | 成人免费在线网 | 免费午夜电影 | 高清国产午夜精品久久久久久 | 中文字幕在线第二页 | 国产在线高清 | 亚洲天堂色| 亚洲精品中文在线观看 | 国产欧美精品在线观看 | 99re在线免费视频 | 中文字幕免费在线 | 午夜小视频在线观看 | 久久精品免费观看 | 国产一区二区视频在线 | 一级中国毛片 | 久久久一二三 | 久久精品国产一区二区 | 亚洲一区二区在线 | 免费黄色在线 | 久久精品久久精品久久精品 | 91精品国产综合久久久动漫日韩 | 欧美在线观看一区二区 |