一 在瀏覽器中輸入baidu.com
輸入網(wǎng)址baidu.com
瀏覽器自動補齊地址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í)行,若沒尋找到則進行下一步操作:
瀏覽器緩存- 瀏覽器會在緩存DNS記錄中尋找baidu.com的IP,但是數(shù)量有一定的限制。
系統(tǒng)緩存-從系統(tǒng)的Hosts文件中查找是否有該域名和對應IP地址。
3.路由器緩存- 一般的路由器會緩存域名信息,在路由器緩存中的域名信息進行查找。
- 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)
- model 模型指的是在實際開發(fā)中將業(yè)務規(guī)則和數(shù)據(jù)進行模型化,使他可以應用于多個視圖。
- view 視圖層使直接面向用戶的,視圖使用戶看得到且與之交互的界面,這是前端的主戰(zhàn)場。
- controller 控制器接收用戶輸入的信息并且使用模型來滿足用戶的需求。
總結:控制器收到用戶請求然后調用相對的模型進行處理,模型進行根據(jù)數(shù)據(jù)和業(yè)務規(guī)則來處理用戶請求,并用相應的格式化模型返回html字符串給瀏覽器。
五 瀏覽器處理
HMTL字符串被瀏覽器接收后被一句句讀取解析
解析到link標簽后重新發(fā)送請求獲取css
解析到script標簽后發(fā)送請求獲取js,并執(zhí)行代碼。
解析到img標簽后發(fā)送請求獲取圖片資源。
六 繪制網(wǎng)頁
- 瀏覽器根據(jù)HTML和CSS計算得到渲染樹,繪制到屏幕上js會被執(zhí)行。