http請求過程及效能優化分析

2021-09-30 14:31:46 字數 1339 閱讀 5364

當在瀏覽器中輸入位址至獲取伺服器的相應,總共經歷了以下四個步驟:

在向瀏覽器輸入乙個**時,如www.qq.com,瀏覽器最終訪問的是乙個ip位址,也就是說www.qq.com與乙個ip存在對映的關係,此時dns起到了橋接2種關係的功能,在下次訪問相同**時,會先從本地瀏覽器尋找dns的快取,如果不存在,則一級一級向上找。

在正式傳送請求之前,需要建立客戶端與伺服器的鏈結。

rtt(round-trip time): 往返時延。在計算機網路中它是乙個重要的效能指標,表示從傳送端傳送資料開始,到傳送端收到來自接收端的確認(接收端收到資料後便立即傳送確認),總共經歷的時延。

與tcp不同,udp並不關心對放接受請求的狀態,是一種基於無連線的處理方式,這樣的特點是省去握手,速度更快,但是是無序的,也會有丟包的安全隱患。

為了不給網路造成擁堵,減緩網路壓力。在首次進行tcp請求時,會限制客戶端與伺服器互動的資料量的上限,首次為14kb左右,之後以乙個指數型成長。

挺高訪問效率,目前的主要方法有:

谷歌和火狐支援,不推薦在多個頁面使用dns-prefetch。通過預載入一些網域名稱,提前去做dns解析,加快響應速度。

由伺服器統一彙總不同的網域名稱,由再對訪問進行**。

由於每個資源首次訪問都存在握手等rtt損耗,越少數量的資源請求,可以節約獲取資源的時間,例如乙個html中src訪問乙個css,就不如,將這個css直接以style整合在html當中,會減少訪問。(webpack等一些構建工具,也可以將html與css當到乙個檔案當中。)

傳統的方式顯示乙個頁面會傳送多次請求,第一次拿到html資源,然後通過請求,再去拿資料,再將資料渲染到頁面上。這樣的多次請求,會增加頁面的響應時間,如果在伺服器端,就將頁面渲染好,再傳送至客戶端,也可以間接減少rtt。即(react等框架的ssr)

指代在可視區請求資源。不贅述了。

http2 的改進主要有:

1.由純文字分割改為二進位制編碼。

2.首部壓縮,以增量的方式進行資料互動,不重**送一些不變的資訊頭。

3.多路復用,服務端推送。

前端效能優化之http請求的過程

在前端面試中,經常會被問到 乙個頁面從輸入url到頁面載入顯示完成,這個過程都發生了什麼 這是前端的經典面試題之一。這個過程涉及的東西很多,區分度很高。大致分為這幾個過程 1.dns解析 2.tcp連線 3.傳送http請求 4.伺服器處理請求並返回http報文 5.瀏覽器解析渲染頁面 6.連線結束...

前端效能優化之http請求的過程

在前端面試中,經常會被問到 乙個頁面從輸入url到頁面載入顯示完成,這個過程都發生了什麼 這是前端的經典面試題之一。這個過程涉及的東西很多,區分度很高。大致分為這幾個過程 1.dns解析 2.tcp連線 3.傳送http請求 4.伺服器處理請求並返回http報文 5.瀏覽器解析渲染頁面 6.連線結束...

MySQL高階效能優化 5 優化分析

執行時間長 等待時間長 查詢語句寫的不好 各種連線以及子查詢,導致沒用上索引或者就沒有建立索引。建立的索引失效 建立了索引,在真正執行的時候,索引失效了導致沒用上索引。關聯查詢使用了太多的join。伺服器優化和引數配置不合適 如果設定的不合理,比例不恰當也會導致效能下降,sql變慢。什麼是索引 索引...