二狗子是某不知名網站的站長,他熱衷於經過博客分享平常的一些工做、生活、技術等,立志要成爲夜空中最靚的仔。
html
可是前段時間有幾個用戶反饋,網站老是莫名會跳轉到一個 xx 網站,除此以外訪問速度也有點慢。做爲夜空中最靚的仔,怎麼可能會讓劫持這種事情困擾用戶,因而全站快速啓用了 HTTPS。網站是安全了,可是有什麼辦法能夠加快訪問速度,二狗子再一次陷入了沉思。算法
一個夜深人靜的夜晚,二狗子開始深刻研究 HTTPS 。他從維基百科查找了 HTTPS 的傳輸過程,只有熟悉了整個過程才能更好了解如何優化 HTTPS。瀏覽器
二狗子想着 HTTPS 雖然已經啓用,可是沒法確認用戶是直接訪問 http:// 仍是 https:// ,按照廣泛的用戶習慣都是直接輸入站點域名,再由瀏覽器直接補充協議類型。可是這就存在一個問題,若是在網站設置當用戶訪問域名的時候強制 https 進行 301 或者 302 跳轉,可是這個過程當中使用到 HTTP 所以容易發生劫持,受到第三方的攻擊。緩存
有什麼更好的辦法來避免這種狀況呢?話說有矛就有盾,二狗子深刻研究發現 HSTS 是能夠避免這種狀況。安全
HSTS 是國際互聯網工程組織 IETF 正在推行一種新的 Web 安全協議,網站採用 HSTS 後,用戶訪問時無需手動在地址欄中輸入 https://,瀏覽器會自動採用 HTTPS 訪問網站地址,從而保證用戶始終訪問到網站的加密連接,保護數據傳輸安全。服務器
HSTS 主要是經過服務器發送響應頭的方式控制瀏覽器操做;網絡
開啓 HSTS 能夠有效防範攻擊,同時省去 301/302 跳轉時間,大大提高網站安全係數和用戶體驗。併發
開啓 HSTS 後,二狗子更加興奮,決定不睡覺繼續深刻研究。性能
二狗子在 IT 界混了那麼久,最近頻頻據說 HTTP/2,但並不瞭解 HTTP/2 有哪些「威武」的地方,因而又開啓了研究之旅。學習
HTTP/2 是 HTTP 協議自 1999 年 HTTP 1.1 發佈後的首個更新,主要基於 SPDY 協議。它由互聯網工程任務組(IETF)的 Hypertext Transfer Protocol Bis(httpbis)工做小組進行開發。該組織於 2014 年 12 月將 HTTP/2 標準提議遞交至 IESG 進行討論,於 2015 年 2 月 17 日被批准。HTTP/2 標準於 2015 年 5 月以 RFC 7540 正式發表。
HTTP/2 相比較 HTTP 1.1 有如下幾個改變:
HTTP/2 到底有多快,有一個 HTTP 1.1 VS HTTP/2 的演示 demo,二狗子看到以後興奮的睡不着覺。
按照這樣優化下去,二狗子的網站訪問速度立刻就要起飛了。
二狗子忽然想到,SSL 版本已經發布到 TLS 1.3,它是 TLS 協議中最新、最快和最安全的版本,相比舊版的 TLS 協議增長了多項新功能。經過簡化 SSL 握手流程,提升了鏈接速度,減小了延遲,並經過移除有安全隱患的加密算法,提升了用戶訪問的性能、效率和安全性等等。
爲了更好的瞭解 TLS 1.3 是如何工做的,二狗子又開始了新的學習之旅。
從上圖能夠看出,使用 TLS 1.2 須要兩次往返( 2-RTT )才能完成握手,而後才能發送請求。
TLS 1.3 的握手再也不支持靜態的 RSA 密鑰交換,這意味着必須使用帶有前向安全的 Diffie-Hellman 進行全面握手。從上圖能夠看出,使用 TLS 1.3 協議只須要一次往返( 1-RTT )就能夠完成握手。
相比 TLS 1.2,TLS 1.3 的握手時間減半。這意味着訪問一個移動端網站,使用 TLS 1.3 協議,可能會減小將近 100ms 的時間。
「不是 HTTPS 讓網站變慢,而是網站優化的不夠」,二狗子發出深深的感慨。通過一晚上的努力,終於給博客開啓了 HSTS、HTTP/2 和 TLS 1.3,二狗子感受本身成爲了博客界最靚的仔。d可是二狗子不知道的是,又拍雲提供一站式 SSL 證書申請服務,HSTS、HTTP/2.0、TLS 1.3 等功能一鍵便可開啓,分分鐘就能讓HTTPS快上加快。
推薦閱讀: