一 在瀏覽器中輸入baidu.com
輸入網(wǎng)址baidu.com
瀏覽器自動(dòng)補(bǔ)齊地址https://www.baidu.com/
常見(jiàn)的協(xié)議有http瓢阴、https、telnet健无、ftp荣恐、file等。
二 域名解析
DNS服務(wù)指的是域名到IP地址之間的解析服務(wù)。IP地址是互聯(lián)網(wǎng)協(xié)議地址叠穆。每一臺(tái)連接互聯(lián)網(wǎng)的設(shè)備都有少漆。
對(duì)于https://www.baidu.com/的URL,瀏覽器在網(wǎng)絡(luò)中查找baidu.com網(wǎng)站所在服務(wù)器的IP地址硼被,分別進(jìn)行以下操作示损,從1-5執(zhí)行,若沒(méi)尋找到則進(jìn)行下一步操作:
瀏覽器緩存- 瀏覽器會(huì)在緩存DNS記錄中尋找baidu.com的IP嚷硫,但是數(shù)量有一定的限制检访。
系統(tǒng)緩存-從系統(tǒng)的Hosts文件中查找是否有該域名和對(duì)應(yīng)IP地址。
3.路由器緩存- 一般的路由器會(huì)緩存域名信息仔掸,在路由器緩存中的域名信息進(jìn)行查找脆贵。
- ISP DNS 緩存- 比如找到服務(wù)商的DNS查找緩存。
5.如果都沒(méi)有找到起暮,則向根域名服務(wù)器查找域名對(duì)應(yīng)IP卖氨,根據(jù)域名服務(wù)器把請(qǐng)求轉(zhuǎn)發(fā)到下一級(jí),直到找到IP负懦。
三 服務(wù)器處理
服務(wù)器是一臺(tái)安裝系統(tǒng)的機(jī)器筒捺,如Linux,windows server2012纸厉。而系統(tǒng)里安裝的處理請(qǐng)求應(yīng)用叫Web server系吭。web服務(wù)器接收用戶的請(qǐng)求,并交給網(wǎng)站處理颗品。
四 網(wǎng)站處理
MVC模型(model)-視圖(view)-控制器(controller)
- model 模型指的是在實(shí)際開(kāi)發(fā)中將業(yè)務(wù)規(guī)則和數(shù)據(jù)進(jìn)行模型化村斟,使他可以應(yīng)用于多個(gè)視圖。
- view 視圖層使直接面向用戶的抛猫,視圖使用戶看得到且與之交互的界面蟆盹,這是前端的主戰(zhàn)場(chǎng)。
- controller 控制器接收用戶輸入的信息并且使用模型來(lái)滿足用戶的需求闺金。
總結(jié):控制器收到用戶請(qǐng)求然后調(diào)用相對(duì)的模型進(jìn)行處理逾滥,模型進(jìn)行根據(jù)數(shù)據(jù)和業(yè)務(wù)規(guī)則來(lái)處理用戶請(qǐng)求,并用相應(yīng)的格式化模型返回html字符串給瀏覽器败匹。
五 瀏覽器處理
HMTL字符串被瀏覽器接收后被一句句讀取解析
解析到link標(biāo)簽后重新發(fā)送請(qǐng)求獲取css
解析到script標(biāo)簽后發(fā)送請(qǐng)求獲取js寨昙,并執(zhí)行代碼。
解析到img標(biāo)簽后發(fā)送請(qǐng)求獲取圖片資源掀亩。
六 繪制網(wǎng)頁(yè)
- 瀏覽器根據(jù)HTML和CSS計(jì)算得到渲染樹(shù)舔哪,繪制到屏幕上js會(huì)被執(zhí)行。