從URL輸入到請求結果返回的過程

2021-10-20 19:31:02 字數 1127 閱讀 9250

問:瀏覽器位址列輸入url後到請求完成瀏覽器發生了什麼?

答:瀏覽器先進行dns解析,根據dns系統查詢ip位址,解析出ip位址,發起請求建立tcp鏈結,請求html檔案資源

深入:那麼為什麼url需要解析(編碼)?

那麼url編碼的規則是什麼?如何保證這個編碼規則?

關於dns解析流程,以及dns優化

// 開啟和關閉dns預解析

"x-dns-prefetch-control" content=

"on"

>

// 強制查詢特定主機名

"dns-prefetch" href=

"">

為什麼兩次握手不行?

關於請求的html檔案,如果瀏覽器的快取中有,則從快取中返回,那麼談一下瀏覽器的快取機制

再一次載入資源時,首先要經過強快取處理,強快取具有最高優先順序,如果強快取cache-control:no-cache;那麼進入協商快取,如果cache-control:max-age=***x,則比較當前時間和上一次返回200時的資源時間差(response的header裡面的date屬性就是用來做這個的時間比較的),如果沒有超過max-age,則命中強快取,從本地快取獲取檔案(如果沒有cache-control,則會獲取expires的值來對比是否過期),如果顯示過期,則命中協商快取,進入協商快取階段

協商快取:向伺服器傳送header帶有if-none-match和if-modified-since請求,伺服器會比較etag欄位,如果相同,命中協商快取,返回304,如果不一致,表示檔案資源變動,返回新的資源檔案,帶上etag,返回http碼200

協商快取中,如果客戶端傳送的if-modified-since值跟伺服器端獲取的最近檔案改動時間一直,命中協商快取,返回304,不一致返回新的last-modified和新資源檔案,返回200

補充:啟發式快取

啟發式快取:如果響應中未顯示expires,cache-control:max-age或cache-control:s-maxage,並且響應中不包含其他有關快取的限制,快取可以使用啟發式方法計算新鮮度壽命。通常會根據響應頭中的2個時間字段 date 減去 last-modified 值的 10% 作為快取時間。

網頁請求從URL到返回資料

從使用者在瀏覽器輸入網域名稱開始,到web頁面載入完畢,這是乙個說複雜不複雜,說簡單不簡單的過程,下文暫且把這個過程稱作網頁載入過程。下面我將依靠自己的經驗,總結一下整個過程。如有錯漏,歡迎指正。閱讀本文需要讀者已有一定的計算機知識,了解tcp dns等。眾所周知,開啟乙個網頁的過程中,瀏覽器會因頁...

從輸入URL到頁面展示

這個時候有兩種情況,第一種是子網域名稱伺服器返回了這個url對應的ip位址,第二種情況是經過了cdn排程,如果目標 使用了cdn服務,則需要在cdn服務商的平台設定相應的cname記錄,這個記錄是cdn服務廠商的乙個dns伺服器的網域名稱,子網域名稱伺服器會返回這個cname記錄,本地dns伺服器得...

從輸入URL到頁面渲染

url請求過程 瀏覽器收到http響應 reference 前人栽樹,後人乘涼,以下為學習筆記。從輸入url到頁面展示,這中間發生了什麼?這是一道經典面試題,涉及到了網路 作業系統 web 等一系列的知識。當我們在位址列中輸入url並按下回車後,瀏覽器裡發生第一件事是觸發解除安裝事件,即 befor...