用戶打開瀏覽器,輸入 baidu.com,頁面展示百度首頁。整個過程發(fā)生了什么?

一 在瀏覽器中輸入baidu.com

  1. 輸入網(wǎng)址baidu.com

  2. 瀏覽器自動補齊地址https://www.baidu.com/

常見的協(xié)議有http、https、telnet、ftp、file等。

二 域名解析

DNS服務指的是域名到IP地址之間的解析服務。IP地址是互聯(lián)網(wǎng)協(xié)議地址。每一臺連接互聯(lián)網(wǎng)的設備都有。
對于https://www.baidu.com/的URL,瀏覽器在網(wǎng)絡中查找baidu.com網(wǎng)站所在服務器的IP地址,分別進行以下操作,從1-5執(zhí)行,若沒尋找到則進行下一步操作:

  1. 瀏覽器緩存- 瀏覽器會在緩存DNS記錄中尋找baidu.com的IP,但是數(shù)量有一定的限制。

  2. 系統(tǒng)緩存-從系統(tǒng)的Hosts文件中查找是否有該域名和對應IP地址。

3.路由器緩存- 一般的路由器會緩存域名信息,在路由器緩存中的域名信息進行查找。

  1. ISP DNS 緩存- 比如找到服務商的DNS查找緩存。

5.如果都沒有找到,則向根域名服務器查找域名對應IP,根據(jù)域名服務器把請求轉發(fā)到下一級,直到找到IP。

三 服務器處理

服務器是一臺安裝系統(tǒng)的機器,如Linux,windows server2012。而系統(tǒng)里安裝的處理請求應用叫Web server。web服務器接收用戶的請求,并交給網(wǎng)站處理。

四 網(wǎng)站處理

MVC模型(model)-視圖(view)-控制器(controller)

  1. model 模型指的是在實際開發(fā)中將業(yè)務規(guī)則和數(shù)據(jù)進行模型化,使他可以應用于多個視圖。
  2. view 視圖層使直接面向用戶的,視圖使用戶看得到且與之交互的界面,這是前端的主戰(zhàn)場。
  3. controller 控制器接收用戶輸入的信息并且使用模型來滿足用戶的需求。
    總結:控制器收到用戶請求然后調用相對的模型進行處理,模型進行根據(jù)數(shù)據(jù)和業(yè)務規(guī)則來處理用戶請求,并用相應的格式化模型返回html字符串給瀏覽器。

五 瀏覽器處理

HMTL字符串被瀏覽器接收后被一句句讀取解析

  • 解析到link標簽后重新發(fā)送請求獲取css

  • 解析到script標簽后發(fā)送請求獲取js,并執(zhí)行代碼。

  • 解析到img標簽后發(fā)送請求獲取圖片資源。

六 繪制網(wǎng)頁

  • 瀏覽器根據(jù)HTML和CSS計算得到渲染樹,繪制到屏幕上js會被執(zhí)行。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容