當我們開啟網頁時,瀏覽器究竟做了什麼

2021-10-08 06:51:30 字數 1189 閱讀 1257

面試的時候經常被問到:在瀏覽器中輸入會發生什麼?那麼就利用這篇部落格來總結一下,在這個過程中瀏覽器究竟做了什麼

總體來說,會有以下幾個過程:

(1)dns網域名稱解析

(2)建立tcp連線(三次握手)

(3)http發起請求

(4)瀏覽器接收http響應

(5)渲染頁面

(6)關閉tcp連線(四次揮手)

在瀏覽器輸入**後,首先要經過網域名稱解析,因為瀏覽器並不能直接通過網域名稱找到對應的伺服器,而是要通過 ip 位址。

但是為什麼不直接用ip位址呢?因為ip位址是乙個32位的二進位制數,相較於網域名稱來說記憶更加困難,所以使用網域名稱更方便記憶。

dns 協議提供通過網域名稱查詢 ip 位址,或逆向從 ip 位址反查網域名稱的服務。dns 是乙個網路伺服器,我們的網域名稱解析簡單來說就是在 dns 上記錄一條資訊記錄。

網域名稱解析流程

首先瀏覽器需要將url解析為ip位址,解析網域名稱用到的是dns協議,首先查詢瀏覽器快取,如果沒有會繼續訪問本機的hosts檔案,因為hosts檔案中會儲存之前訪問過**的網域名稱和ip資料,如果hosts檔案中依然沒有,就給本地dns傳送查詢請求

dns查詢有兩種方式:遞迴查詢和迭代查詢

遞迴查詢:本地的dns伺服器向根網域名稱伺服器傳送查詢請求,根網域名稱向一級網域名稱伺服器傳送查詢請求,依次類推直到查詢到該網域名稱的ip位址,再依次返回,最後根網域名稱伺服器將ip位址返回給本地dns伺服器;

為了加速dns解析的過程,如果近期訪問過的網頁,很有可能快取在本地的hosts檔案,這樣再次訪問,就不需要去伺服器拿資料,直接訪問本地快取資料,可以降低伺服器的壓力,提高響應速度。

http請求報文格式如下:

http的具體資訊,請參考部落格:http協議

http響應報文格式如下:

http的具體資訊,請參考部落格:http協議

當我們開啟網頁時,瀏覽器做了什麼???

問題 請談談從瀏覽器輸入url到拿到網頁的整個過程 當你在搜尋欄輸入 瀏覽器進行url解析。看到https,就知道要訪問的是web伺服器,www.baidu.com是web伺服器的名字。根據上面的解析結果生成http請求資訊。瀏覽器生成了http請求之後 如果業務有加密需要的話,可以使用https ...

指定瀏覽器開啟網頁

如果在你的android系統上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?答案當然是 肯定的。具體方法如下 intent intent new intent intent.setaction android.intent.action.view uri content uri browsers ...

指定瀏覽器開啟網頁

如果在你的android系統上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?答案當然是 肯定的。具體方法如下 intent intent new intent intent.setaction android.intent.action.view uri content uri browsers ...