中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

HTTPS 對(duì)訪問(wèn)速度的影響

2016-09-18    分類: 網(wǎng)站建設(shè)

在介紹速度優(yōu)化策略之前,先來(lái)看下 HTTPS 對(duì)速度有什么影響。影響主要來(lái)自兩方面:

  1. 協(xié)議交互所增加的網(wǎng)絡(luò) RTT(round trip time)。

  2. 加解密相關(guān)的計(jì)算耗時(shí)。

下面分別介紹一下。

網(wǎng)絡(luò)耗時(shí)增加

由于 HTTP 和 HTTPS 都需要 DNS 解析,并且大部分情況下使用了 DNS 緩存,為了突出對(duì)比效果,忽略主域名的 DNS 解析時(shí)間。
用戶使用 HTTP 協(xié)議訪問(wèn) http://chengdu.cdcxhl.com(或者 chengdu.cdcxhl.com) 時(shí)會(huì)有如下網(wǎng)絡(luò)上的交互耗時(shí):


圖 1 HTTP 首個(gè)請(qǐng)求的網(wǎng)絡(luò)耗時(shí)
可見(jiàn),用戶只需要完成 TCP 三次握手建立 TCP 連接就能夠直接發(fā)送 HTTP 請(qǐng)求獲取應(yīng)用層數(shù)據(jù),此外在整個(gè)訪問(wèn)過(guò)程中也沒(méi)有需要消耗計(jì)算資源的地方。
接下來(lái)看 HTTPS 的訪問(wèn)過(guò)程,相比 HTTP 要復(fù)雜很多,在部分場(chǎng)景下,使用 HTTPS 訪問(wèn)有可能增加 7 個(gè) RTT。如下圖:

圖 2 HTTPS 首次請(qǐng)求對(duì)訪問(wèn)速度的影響
HTTPS 首次請(qǐng)求需要的網(wǎng)絡(luò)耗時(shí)解釋如下:

  1. 三次握手建立 TCP 連接。耗時(shí)一個(gè) RTT。

  2. 使用 HTTP 發(fā)起 GET 請(qǐng)求,服務(wù)端返回 302 跳轉(zhuǎn)到 http://chengdu.cdcxhl.com。需要一個(gè) RTT 以及 302 跳轉(zhuǎn)延時(shí)。

    • 大部分情況下用戶不會(huì)手動(dòng)輸入 http://chengdu.cdcxhl.com;來(lái)訪問(wèn) HTTPS,服務(wù)端只能返回 302 強(qiáng)制瀏覽器跳轉(zhuǎn)到 https。

    • 瀏覽器處理 302 跳轉(zhuǎn)也需要耗時(shí)。

  3. 三次握手重新建立 TCP 連接。耗時(shí)一個(gè) RTT。

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

  4. TLS 完全握手階段一。耗時(shí)至少一個(gè) RTT。

    • 這個(gè)階段主要是完成加密套件的協(xié)商和證書(shū)的身份認(rèn)證。

    • 服務(wù)端和瀏覽器會(huì)協(xié)商出相同的密鑰交換算法、對(duì)稱加密算法、內(nèi)容一致性校驗(yàn)算法、證書(shū)簽名算法、橢圓曲線(非 ECC 算法不需要)等。

    • 瀏覽器獲取到證書(shū)后需要校驗(yàn)證書(shū)的有效性,比如是否過(guò)期,是否撤銷。

  5. 解析 CA 站點(diǎn)的 DNS。耗時(shí)一個(gè) RTT。

    • 瀏覽器獲取到證書(shū)后,有可能需要發(fā)起 OCSP 或者 CRL 請(qǐng)求,查詢證書(shū)狀態(tài)。

    • 瀏覽器首先獲取證書(shū)里的 CA 域名。

    • 如果沒(méi)有命中緩存,瀏覽器需要解析 CA 域名的 DNS。

  6. 三次握手建立 CA 站點(diǎn)的 TCP 連接。耗時(shí)一個(gè) RTT。

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

  7. 發(fā)起 OCSP 請(qǐng)求,獲取響應(yīng)。耗時(shí)一個(gè) RTT。

  8. 完全握手階段二,耗時(shí)一個(gè) RTT 及計(jì)算時(shí)間。

    • 完全握手階段二主要是密鑰協(xié)商。

  9. 完全握手結(jié)束后,瀏覽器和服務(wù)器之間進(jìn)行應(yīng)用層(也就是 HTTP)數(shù)據(jù)傳輸。

當(dāng)然不是每個(gè)請(qǐng)求都需要增加 7 個(gè) RTT 才能完成 HTTPS 首次請(qǐng)求交互。大概只有不到 0.01% 的請(qǐng)求才有可能需要經(jīng)歷上述步驟,它們需要滿足如下條件:

  1. 必須是首次請(qǐng)求。即建立 TCP 連接后發(fā)起的第一個(gè)請(qǐng)求,該連接上的后續(xù)請(qǐng)求都不需要再發(fā)生上述行為。

  2. 必須要發(fā)生完全握手,而正常情況下 80% 的請(qǐng)求能實(shí)現(xiàn)簡(jiǎn)化握手。

  3. 瀏覽器需要開(kāi)啟 OCSP 或者 CRL 功能。Chrome 默認(rèn)關(guān)閉了 ocsp 功能,firefox 和 IE 都默認(rèn)開(kāi)啟。

  4. 瀏覽器沒(méi)有命中 OCSP 緩存。Ocsp 一般的更新周期是 7 天,firefox 的查詢周期也是 7 天,也就說(shuō)是 7 天中才會(huì)發(fā)生一次 ocsp 的查詢。

  5. 瀏覽器沒(méi)有命中 CA 站點(diǎn)的 DNS 緩存。只有沒(méi)命中 DNS 緩存的情況下才會(huì)解析 CA 的 DNS。

2.2 計(jì)算耗時(shí)增加

上節(jié)還只是簡(jiǎn)單描述了 HTTPS 關(guān)鍵路徑上必須消耗的純網(wǎng)絡(luò)耗時(shí),沒(méi)有包括非常消耗 CPU 資源的計(jì)算耗時(shí),事實(shí)上計(jì)算耗時(shí)也不小(30ms 以上),從瀏覽器和服務(wù)器的角度分別介紹一下:

  1. 瀏覽器計(jì)算耗時(shí)

    • RSA 證書(shū)簽名校驗(yàn),瀏覽器需要解密簽名,計(jì)算證書(shū)哈希值。如果有多個(gè)證書(shū)鏈,瀏覽器需要校驗(yàn)多個(gè)證書(shū)。

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

    • ECC 密鑰交換時(shí),需要計(jì)算橢圓曲線的公私鑰。

    • ECC 密鑰交換時(shí),需要使用證書(shū)公鑰解密獲取服務(wù)端發(fā)過(guò)來(lái)的 ECC 公鑰。

    • ECC 密鑰交換時(shí),需要根據(jù)服務(wù)端公鑰計(jì)算 master key。

    • 應(yīng)用層數(shù)據(jù)對(duì)稱加解密。

    • 應(yīng)用層數(shù)據(jù)一致性校驗(yàn)。

  2. 服務(wù)端計(jì)算耗時(shí)

    • RSA 密鑰交換時(shí)需要使用證書(shū)私鑰解密 premaster。這個(gè)過(guò)程非常消耗性能。

    • ECC 密鑰交換時(shí),需要計(jì)算橢圓曲線的公私鑰。

    • ECC 密鑰交換時(shí),需要使用證書(shū)私鑰加密 ECC 的公鑰。

    • ECC 密鑰交換時(shí),需要根據(jù)瀏覽器公鑰計(jì)算共享的 master key。

    • 應(yīng)用層數(shù)據(jù)對(duì)稱加解密。

    • 應(yīng)用層數(shù)據(jù)一致性校驗(yàn)。

由于客戶端的 CPU 和操作系統(tǒng)種類比較多,所以計(jì)算耗時(shí)不能一概而論。手機(jī)端的 HTTPS 計(jì)算會(huì)比較消耗性能,單純計(jì)算增加的延遲至少在 50ms 以上。PC 端也會(huì)增加至少 10ms 以上的計(jì)算延遲。
服務(wù)器的性能一般比較強(qiáng),但由于 RSA 證書(shū)私鑰長(zhǎng)度遠(yuǎn)大于客戶端,所以服務(wù)端的計(jì)算延遲也會(huì)在 5ms 以上。

本文標(biāo)題:HTTPS 對(duì)訪問(wèn)速度的影響
本文鏈接:http://www.rwnh.cn/news12/46462.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)品牌網(wǎng)站制作、企業(yè)網(wǎng)站制作、云服務(wù)器、微信公眾號(hào)網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
山丹县| 泾川县| 长春市| 崇礼县| 博爱县| 太保市| 石屏县| 晋江市| 新晃| 武冈市| 龙泉市| 武清区| 缙云县| 彭水| 文水县| 察哈| 白玉县| 康平县| 中牟县| 林州市| 嫩江县| 忻州市| 溆浦县| 丰原市| 临夏市| 平利县| 岑巩县| 凤山市| 柏乡县| 东山县| 宕昌县| 上思县| 翁牛特旗| 吉首市| 博兴县| 四子王旗| 丹寨县| 玛沁县| 迭部县| 金门县| 丹东市|