1 客户端性能--浏览器页面处理
1.1瀏覽器頁面處理
瀏覽器不是批量加載頁面的。用戶輸入URL后,瀏覽器會并行各項活動,在網絡連接的同時進行頁面的解析,并將其呈現到屏幕。瀏覽器執行的這些步驟對用戶是可見的,并且很大程度上影響著性能感知和整個頁面的加載時間。
1.1.1網絡連接和初始HTTP請求
瀏覽器要檢索頁面,先從URL開始,使用DNS確定服務器的IP地址,然后通過TCP的應用層協議(HTTP)連接到服務器,請求與改URL內容。得到響應后,瀏覽器再次進行解析,將其呈現給屏幕。與此同時,瀏覽器還并行的繼續進來網絡活動,排隊或從其他URL請求內容。瀏覽器通過發送TCP SYN讓服務器打開一個連接。服務器確認SYN包做出響應,此時鏈接被打開。然后瀏覽器發送一個HTTP GET 包,包括請求的URL、Cookie等數據,瀏覽器接收后會發送ACK包,這段時間內服務器生成響應。
然后服務器發送響應,而客戶端用ACK包響應,ACK請求的頻率由TCP“窗口”大小決定,他是決定網絡速度的重要因素。你會看到瀏覽器請求的響應不會同時到達,在客戶端發送包、服務器響應之間會有時間間隔,同時在接二連三的包之間也會有間隔。
SYN 和 SYN ACK 包加上TCP的慢啟動性,致使打開網絡連接是很花時間的過程。因此,我們應該避免過多的打開網絡連接。
1.1.2頁面解析和新的資源請求
當IE等待數據包時,他會解析已經得到的包,并且還會尋找其他可用的HTTP請求,并行啟動,對于每個服務器來說,瀏覽器可以同時啟用兩個連接。
?
?
如上圖所示,橫軸是時間,每一行代表瀏覽器發起的不同請求,最上一行表示使用DNS解析服務器的IP地址所需要的時間。第二行表示讀取主頁的時間,最左邊的一段表示連接服務器的時間(SYN 和 SYN ACK 包),正好從解析完IP地址以后開始。中間一段是發送初始HTTP GET請求和接收初始的HTTP響應的時間,右邊的一段是剩余的響應到達時間。最底下一行是檢索圖片所需的時間,左邊是連接時間,右邊一段是初始響應到達的時間。因為圖片很小,圖片的所有數據都包括在HTTP響應相同的數據包內,所有沒有第三段。從第二和和第三行中可以看出,大約到接受HTML過半的時候瀏覽器才打開服務器的第二個連接,請求圖片。因為瀏覽器一邊接收圖片,一邊解析,而<img>標簽離HTML的頭部有一段距離,直到幾個數據包到達后瀏覽器才會碰到這個標簽。
轉載于:https://www.cnblogs.com/MaxJoker/p/5344577.html
總結
以上是生活随笔為你收集整理的1 客户端性能--浏览器页面处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3.8软件测试模型
- 下一篇: HTML5文档结构 摘要