百度在2015年即完成HTTPS改造,那大型網(wǎng)站的HTTPS改造中都有哪些實(shí)踐經(jīng)驗(yàn),相信這是很多站長(zhǎng)都想知道的,那么下面小編就為大家總結(jié)一下:
在介紹速度優(yōu)化策略之前,先來(lái)看下 HTTPS 對(duì)速度有什么影響。影響主要來(lái)自?xún)煞矫妫?/div>
協(xié)議交互所增加的網(wǎng)絡(luò) RTT(round trip time)。
加解密相關(guān)的計(jì)算耗時(shí)。
下面分別介紹一下。
2.1 網(wǎng)絡(luò)耗時(shí)增加
由于 HTTP 和 HTTPS 都需要 DNS 解析,并且大部分情況下使用了 DNS 緩存,為了突出對(duì)比效果,忽略主
域名的 DNS 解析時(shí)間。
用戶使用 HTTP 協(xié)議訪問(wèn)https://www.baidu
.com(或者 www.baidu.com) 時(shí)會(huì)有如下網(wǎng)絡(luò)上的交互耗時(shí):
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í)
a) RSA 證書(shū)簽名校驗(yàn),瀏覽器需要解密簽名,計(jì)算證書(shū)哈希值。如果有多個(gè)證書(shū)鏈,瀏覽器需要校驗(yàn)多個(gè)證書(shū)。
b) RSA 密鑰交換時(shí),需要使用證書(shū)公鑰加密 premaster。耗時(shí)比較小,但如果手機(jī)性能比較差,可能也需要 1ms 的時(shí)間。
c) ECC 密鑰交換時(shí),需要計(jì)算橢圓曲線的公私鑰。
d) ECC 密鑰交換時(shí),需要使用證書(shū)公鑰解密獲取服務(wù)端發(fā)過(guò)來(lái)的 ECC 公鑰。
e) ECC 密鑰交換時(shí),需要根據(jù)服務(wù)端公鑰計(jì)算 master key。
f) 應(yīng)用層數(shù)據(jù)對(duì)稱(chēng)加解密。
g) 應(yīng)用層數(shù)據(jù)一致性校驗(yàn)。
2, 服務(wù)端計(jì)算耗時(shí)
a) RSA 密鑰交換時(shí)需要使用證書(shū)私鑰解密 premaster。這個(gè)過(guò)程非常消耗性能。
b) ECC 密鑰交換時(shí),需要計(jì)算橢圓曲線的公私鑰。
c) ECC 密鑰交換時(shí),需要使用證書(shū)私鑰加密 ECC 的公鑰。
d) ECC 密鑰交換時(shí),需要根據(jù)瀏覽器公鑰計(jì)算共享的 master key。
e) 應(yīng)用層數(shù)據(jù)對(duì)稱(chēng)加解密。
f) 應(yīng)用層數(shù)據(jù)一致性校驗(yàn)。
由于客戶端的 CPU 和操作系統(tǒng)種類(lèi)比較多,所以計(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 以上。