1. 程式人生 > >http連接過程遇到的各種性能瓶頸

http連接過程遇到的各種性能瓶頸

建立連接 tcp inf 子集 主頁 服務端 完成 三次 dns查詢

昨天寫了http中的流程,今天針對這個流程,歸納幾個可能遇到的性能瓶頸

  1. DNS查詢

     域名解析雖然只要一次,本地就會緩存,但是有時候後端的服務可能綁定在二級域名下,這樣解析復雜度就上去了,而一些大廠關聯的域名可能更多,每一個域名解析都會增加響應時間,更為耗時的是之後還要tcp三次握手,

     對應的昨天流程圖中的:

     技術分享圖片

  2.建立連接

   這裏就是我覺得最為耗時的tcp三次握手了,如果是TLS連接還要加上TLS的網絡耗時,除此之外,TLS協議本身還要瀏覽器和服務器解析,這也是耗時操作,這一部分對應:

   技術分享圖片

  3.TTFB

    time to first bytes 首字節時間,這個就要服務器響應速度了,以及主頁面的資源排布了,對應的地方是

    技術分享圖片

    註意這個部分算的是往返操作,就是說不單單是客戶端的發出,還要算上服務端的響應

  4 TTLB

    請求資源最後到達的的時間

  5 開始渲染時間

    這裏開始就是瀏覽器的部分,瀏覽器屏幕上開始響應內容的時間,就是用戶等待頁面的時間,這是這一部分的

    技術分享圖片

  6.文檔加載完成時間

    這一部分就是所有頁面資源加載的時間,對應的是

    技術分享圖片

  最後,大體上每個鏈接步驟都是耗時操作,在這篇博文中雖然我把他們分開講,是為了讓我自己分清楚,實際上裏面有些概念是子集和父集的概念,例如TTFB時間實際上包含了前面DNS解析和TCP三次握手的時間,和別人裝逼的時候一定要註意

  還有一點,上面的每一個資源的增加都會造成性能的下降,例如引用的js文件如果增加,頁面加載完成時間也會增加

http連接過程遇到的各種性能瓶頸