從瀏覽器輸入一個地址,發送請求,經歷了哪些過程(面試問題)


步驟

1- 輸入網址 

2- 緩存解析 

3- 域名解析 

4- tcp連接,三次握手 

5- 頁面渲染


 

 

一:輸入網址

那肯定是輸入你要訪問的網站網址了,俗稱url;

 

二:緩存解析

瀏覽器獲取了這個url,當然就去解析了,它先去緩存當中看看有沒有,從 瀏覽器緩存-系統緩存-路由器緩存 當中查看,如果有從緩存當中顯示頁面,然后沒有那就進行步驟三; 
緩存就是把你之前訪問的web資源,比如一些js,css,圖片什么的保存在你本機的內存或者磁盤當中。

(1) 在chrome瀏覽器中輸入網址: chrome://chrome-urls/ chrome-urls是一個看到所有的Chrome支持的偽RUL,找到其中的chrome://appcache-internals/ 可以看見chrome的本地緩存地址:Instances in: C:\Users\User\AppData\Local\Google\Chrome\User Data\Default (0)

(2)在chrome中訪問www.baidu.com/,打開開發者模式,不勾選 Disable cache

 

 

圈出來的部分顯示了資源的來源: from disk cache : 將資源緩存到磁盤中,等待下次訪問時不需要重新下載資源,而直接從磁盤中獲取; 
from memory cache :將資源緩存到內存中,等待下次訪問時不需要重新下載資源,而直接從內存中獲取; 
可以看見資源的來源是緩存當中,從緩存當中獲取了這些就可以直接顯示在頁面中,不需要發送http請求;

 

 三: 域名解析

 

和步驟二一樣,做一個訪問新頁面的操作juejin.im/timeline,同樣打開開發者模式,,不勾選 Disable cache

 

 

可以發現它的來源再也不是: from disk cache 或者from memory cache ,即發送http請求。 
那么在發送http請求前,瀏覽器做了什么?

在發送http之前,需要進行DNS解析即域名解析。 
DNS解析:域名到IP地址的轉換過程。域名的解析工作由DNS服務器完成。解析后可以獲取域名相應的IP地址

 

四:tcp連接,三次握手

 

在域名解析之后,瀏覽器向服務器發起了http請求,tcp連接,三次握手建立tcp連接。TCP協議是面向連接的,所以在傳輸數據前必須建立連接

 

 

(1)客戶端向服務器發送連接請求報文; 
(2)服務器端接受客戶端發送的連接請求后后回復ACK報文,並為這次連接分配資源。 
(3)客戶端接收到ACK報文后也向服務器端發生ACK報文,並分配資源。

這樣TCP連接就建立了。 
在此之后,瀏覽器開始向服務器發送http請求,請求數據包。請求信息包含一個頭部和一個請求體。

 

五:服務器收到請求

 

服務器收到瀏覽器發送的請求信息,返回一個響應頭和一個響應體。

 

六:頁面渲染

 

瀏覽器收到服務器發送的響應頭和響應體,進行客戶端渲染,生成Dom樹、解析css樣式、js交互。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM