之前某搜索網(wǎng)站度站長公布宣布“放開對https站點(diǎn)的收錄,https站點(diǎn)不需要再做任何額外的工作就可以被順利抓收。”相比于http站點(diǎn),https在保護(hù)用戶隱私,防止流量劫持方面發(fā)揮著非常關(guān)鍵的作用,但與此同時(shí),https也會(huì)降低用戶訪問速度,增加網(wǎng)站服務(wù)器的計(jì)算資源消耗。那么,https對網(wǎng)站應(yīng)該如何進(jìn)行seo優(yōu)化呢?
首先,https對訪問速度的影響。在介紹速度優(yōu)化策略之前,先來看下https對速度有什么影響。
影響主要來自兩方面:
一, 協(xié)議交互所增加的網(wǎng)絡(luò)rtt(round trip time)。
第二, 加解密相關(guān)的計(jì)算耗時(shí)。
我們先來看一下網(wǎng)絡(luò)耗時(shí)增加。由于 http和https都需要dns解析,并且大部分情況下使用了dns緩存,為了突出對比效果,忽略主域名的dns解析時(shí)間。用戶使用http協(xié)議訪問http://www.url.com時(shí)會(huì)有如下網(wǎng)絡(luò)上的交互耗時(shí)
http首個(gè)請求的網(wǎng)絡(luò)耗時(shí)
可見,用戶只需要完成tcp三次握手建立tcp連接就能夠直接發(fā)送http請求獲取應(yīng)用層數(shù)據(jù),此外在整個(gè)訪問過程中也沒有需要消耗計(jì)算資源的地方。
https站點(diǎn)首個(gè)請求對訪問速度的影響
https首次請求需要的網(wǎng)絡(luò)耗時(shí)解釋如下:
1、三次握手建立tcp連接。耗時(shí)一個(gè)rtt。
2、使用http發(fā)起get請求,服務(wù)端返回302跳轉(zhuǎn)到https://www.url.com。需要一個(gè)rtt以及302跳轉(zhuǎn)延時(shí)。
(1)大部分情況下用戶不會(huì)手動(dòng)輸入https://www.url.com來訪問https,服務(wù)端只能返回302強(qiáng)制瀏覽器跳轉(zhuǎn)到https。
(2)瀏覽器處理302跳轉(zhuǎn)也需要耗時(shí)。
3、三次握手重新建立tcp連接。耗時(shí)一個(gè)rtt。
302跳轉(zhuǎn)到https服務(wù)器之后,由于端口和服務(wù)器不同,需要重新完成三次握手,建立tcp連接。
4、tls完全握手階段一。耗時(shí)至少一個(gè)rtt。
(1)這個(gè)階段主要是完成加密套件的協(xié)商和證書的身份認(rèn)證。
(2)服務(wù)端和瀏覽器會(huì)協(xié)商出相同的密鑰交換算法、對稱加密算法、內(nèi)容一致性校驗(yàn)算法、證書簽名算法、橢圓曲線等。
(3)瀏覽器獲取到證書后需要校驗(yàn)證書的有效性,比如是否過期,是否撤銷。
5、解析ca站點(diǎn)的dns。耗時(shí)一個(gè)rtt。
(1)瀏覽器獲取到證書后,有可能需要發(fā)起ocsp或者crl請求,查詢證書狀態(tài)。
(2)瀏覽器首先獲取證書里的ca域名。
(3)如果沒有命中緩存,瀏覽器需要解析ca域名的dns。
6、三次握手建立ca站點(diǎn)的tcp連接。耗時(shí)一個(gè)rtt。
dns解析到ip后,需要完成三次握手建立tcp連接。
7、發(fā)起ocsp請求,獲取響應(yīng)。耗時(shí)一個(gè)rtt。
8、完全握手階段二,耗時(shí)一個(gè)rtt及計(jì)算時(shí)間。
完全握手階段二主要是密鑰協(xié)商。
完全握手結(jié)束后,瀏覽器和服務(wù)器之間進(jìn)行應(yīng)用層(也就是http)數(shù)據(jù)傳輸。
當(dāng)然不是每個(gè)請求都需要增加7個(gè)rtt才能完成https首次請求交互。大概只有不到0.01%的請求才有可能需要經(jīng)歷上述步驟,它們需要滿足如下條件:
1、必須是首次請求。即建立tcp連接后發(fā)起的一個(gè)請求,該連接上的后續(xù)請求都不需要再發(fā)生上述行為。
2、必須要發(fā)生完全握手,而正常情況下80%的請求能實(shí)現(xiàn)簡化握手。
3、瀏覽器需要開啟ocsp或者crl功能。chrome默認(rèn)關(guān)閉了ocsp功能,firefox和ie都默認(rèn)開啟。
4、瀏覽器沒有命中ocsp緩存。ocsp一般的更新周期是7天,firefox的查詢周期也是7天,也就說是7天中才會(huì)發(fā)生一次ocsp的查詢。
5、瀏覽器沒有命中ca站點(diǎn)的dns緩存。只有沒命中dns緩存的情況下才會(huì)解析ca的dns。
上面還只是簡單描述了https關(guān)鍵路徑上必須消耗的純網(wǎng)絡(luò)耗時(shí),沒有包括非常消耗cpu資源的計(jì)算耗時(shí),事實(shí)上計(jì)算耗時(shí)也不小(30ms以上),從瀏覽器和服務(wù)器的角度分別介紹一下:
1、瀏覽器計(jì)算耗時(shí)
(1)rsa證書簽名校驗(yàn),瀏覽器需要解密簽名,計(jì)算證書哈希值。如果有多個(gè)證書鏈,瀏覽器需要校驗(yàn)多個(gè)證書。
(2)rsa密鑰交換時(shí),需要使用證書公鑰加密premaster。耗時(shí)比較小,但如果手機(jī)性能比較差,可能也需要1ms的時(shí)間。
(3)ecc密鑰交換時(shí),需要計(jì)算橢圓曲線的公私鑰。
(4)ecc密鑰交換時(shí),需要使用證書公鑰解密獲取服務(wù)端發(fā)過來的ecc公鑰。
(5)ecc密鑰交換時(shí),需要根據(jù)服務(wù)端公鑰計(jì)算master key。
(6)應(yīng)用層數(shù)據(jù)對稱加解密。
(7)應(yīng)用層數(shù)據(jù)一致性校驗(yàn)。
2、服務(wù)端計(jì)算耗時(shí)
(1)rsa密鑰交換時(shí)需要使用證書私鑰解密premaster。這個(gè)過程非常消耗性能。
(2)ecc密鑰交換時(shí),需要計(jì)算橢圓曲線的公私鑰。
(3)ecc密鑰交換時(shí),需要使用證書私鑰加密ecc的公鑰。
(4)ecc密鑰交換時(shí),需要根據(jù)瀏覽器公鑰計(jì)算共享的master key。
(5)應(yīng)用層數(shù)據(jù)對稱加解密。
(6)應(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證書私鑰長度遠(yuǎn)大于客戶端,所以服務(wù)端的計(jì)算延遲也會(huì)在5ms以上。
雖然我們知道網(wǎng)速只是seo優(yōu)化影響因素的一部分,但是不能否認(rèn)互聯(lián)網(wǎng)八秒原則的存在的意義。https站點(diǎn)能否破而后立突破網(wǎng)速問題也是以后我們進(jìn)行seo優(yōu)化所需要重點(diǎn)關(guān)注的問題。
外貿(mào)服務(wù)器哪個(gè)好?(外貿(mào)服務(wù)器租用推薦)互聯(lián)網(wǎng)廣告dsp是什么?濟(jì)寧網(wǎng)站優(yōu)化分享輔佐友情鏈接事半功倍的七種能力外貿(mào)網(wǎng)站建設(shè)如何才能收獲客戶喜愛?棗莊百度快照探索友情鏈接交換途徑及新站交換友鏈鏈接的注意事項(xiàng)如何選擇專業(yè)的網(wǎng)站設(shè)計(jì)公司?有哪些方法?SEM營銷的目的何在?企業(yè)建設(shè)網(wǎng)站需要注意哪些要點(diǎn)