只因把 https 改成 http,帶寬減少了 70%!
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
起因是一個高并發的采集服務上線后,100m的上行很快就被打滿了。 但是!這個請求只是一個 GET 請求,同時并沒有很大的請求體,這是為什么呢? 于是使用 charles 重新抓包后發現,一個 request 的請求居然要占用 1.68kb 的大小! 其中TLS Handshake 就占了 1.27kb。 這種情況下,需要的上行帶寬就是: 也就說明100mbps的上行為何被輕松打滿 TLS Handshake是什么來頭,竟然如此大?首先要知道HTTPS全稱是:HTTP over TLS,每次建立新的TCP連接通常需要進行一次完整的TLS Handshake。在握手過程中,客戶端和服務器需要交換證書、公鑰、加密算法等信息,這些數據占用了較多的字節數。 TLS Handshake的內容主要包括:
這個過程不僅耗時,還會消耗帶寬和CPU資源。 因此想到最粗暴的解決方案也比較簡單,就是直接使用 HTTP,省去TLS Handshake的過程,那么自然就不會有 TLS 的傳輸了。 那么是否真的有效呢?驗證一下就知道。 將請求協議改成 http 后: 可以看到請求頭確實不包含 TLS Handshake了! 整個請求只有 0.4kb,節省了 70% 的大小 目標達成 因此可以說明:在一些不是必須使用 https 的場景下,使用 http 會更加節省帶寬。 同時因為減少了加密的這個過程,可以觀察到的是,在相同的并發下,服務器的負載有明顯降低。 那么問題來了如果接口必須使用 https那怎么辦呢? 當然還有另外一個解決方案,那就使用使用 通過啟用 Keep-Alive, 對于高并發的場景也非常適用。 要注意的是keep-alive 是有超時時間的,超過時間連接會被關閉,再次請求需要重新建立鏈接。 Nginx 默認的
作者:麥麥麥造 鏈接:https://juejin.cn/post/7409138396792881186 來源:稀土掘金 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。 該文章在 2024/9/2 10:38:36 編輯過 |
關鍵字查詢
相關文章
正在查詢... |