不少初學網絡或者前端的初學者大多會有這樣一個疑問:從輸入URL到頁面加載完成到底發生了什麼?
總的來講,這個過程分爲下面幾個步驟:
1.DNS解析
2.與服務器創建鏈接
3.服務器處理並返回http報文
4.瀏覽器解析渲染頁面前端
DNS解析的過程就是尋找哪臺機器上有你須要資源的過程。當你在瀏覽器中輸入一個地址時,例如www.baidu.com,其實不是百度網站真正意義上的地址。互聯網上每一臺計算機的惟一標識是它的IP地址,可是IP地址並不方便記憶。用戶更喜歡用方便記憶的網址去尋找互聯網上的其它計算機,也就是上面提到的百度的網址。因此DNS解析實際上充當了一個翻譯的角色,實現了網址到IP地址的轉換。瀏覽器
而DNS解析一般會通過如下這幾個過程:
1.瀏覽器緩存 - 瀏覽器緩存DNS記錄一段時間
2.系統緩存 - 從Hosts文件查找是否有該域名和對應IP
3.路由器緩存 - 通常路由器也會緩存域名信息
4.ISP DNS緩存 - 到電信的DNS查找緩存
5.都沒有找到,則向根域名服務器查找域名對應IP,根域名服務器把請求轉發到下一級查找IP緩存
www.baidu.com查找順序是:
根域名服務器(.)-> .com -> .baidu.com -> www.baidu.com服務器
知道了服務器的IP地址後,就能夠與服務器創建鏈接。
創建鏈接須要三個過程(三次握手):
1.主機向服務器發送一個創建鏈接的請求網絡
2.服務器接到請求後發送贊成鏈接的信號網站
3.主機接到贊成鏈接的信號後,再次向服務器發送了確認信號翻譯
1.瀏覽器根據 URL 內容生成 HTTP 請求,請求中包含請求文件的位置、請求文件的方式等等圖片
2.服務器接到請求後,會根據 HTTP 請求中的內容來決定如何獲取相應的 HTML 文件ip
3.服務器將獲得的 HTML 文件發送給瀏覽器資源
在執行 HTML 中代碼時,根據須要,瀏覽器會繼續請求圖片、CSS、JavsScript等文件,過程同請求 HTML 。
以上就是我對輸入URL到頁面加載的過程的一個簡單理解。若有不對或有更好的理解,能夠留言評論,不勝感激。