從輸入網(wǎng)址到瀏覽器把頁(yè)面展現(xiàn)出來(lái)一要經(jīng)過(guò)以下幾個(gè)步驟:
- 在瀏覽器輸入U(xiǎn)RL
- 域名解析
- 服務(wù)器處理
- 網(wǎng)站處理
- 瀏覽器處理
- 繪制頁(yè)面
第一步看铆、在瀏覽器輸入U(xiǎn)RL
什么是URL脚草?
URL: 統(tǒng)一資源定位符氮兵,用于定位互聯(lián)網(wǎng)上的資源
URL由那些部分組成?
傳輸協(xié)議+域名或IP地址+端口(缺損為80)+資源具體地址
例如:http://www.baidu.com/index.php
(傳輸協(xié)議為http
钩骇,域名或IP是www.baidu.com
豺谈,資源具體地址為index.php
)
傳輸協(xié)議有哪些?
http贡这、https茬末、ftp、file
第二步盖矫、域名解析
當(dāng)我們輸入 http://www.baidu.com
的時(shí)候其實(shí)瀏覽器是不知道www.baidu.com
是什么東西的丽惭,需要查找www.baidu.com
網(wǎng)站所在服務(wù)器的IP地址,才能找到目標(biāo)辈双。
服務(wù)器的IP地址是如何查找的责掏?
- 瀏覽器緩存 – 瀏覽器會(huì)緩存DNS記錄一段時(shí)間
- 系統(tǒng)緩存 - 從 Hosts 文件查找是否有該域名和對(duì)應(yīng) IP。
- 路由器緩存 – 一般路由器也會(huì)緩存域名信息湃望。
- ISP DNS 緩存 – 比如到電信的 DNS 上查找緩存换衬。
- 如果都沒(méi)有找到,則向根域名服務(wù)器查找域名對(duì)應(yīng) IP证芭,根域名(如.com)服務(wù)器把請(qǐng)求轉(zhuǎn)發(fā)到下一級(jí)瞳浦,直到找到 IP
第三步、服務(wù)器處理
服務(wù)器是一臺(tái)安裝系統(tǒng)的機(jī)器废士,常見(jiàn)的系統(tǒng)如Linux叫潦、windows server 2012,并且系統(tǒng)里安裝有處理請(qǐng)求的應(yīng)用 Web server官硝。
Web server是什么矗蕊?
接收用戶的Request 交給網(wǎng)站代碼,或者接受請(qǐng)求反向代理到其他 web服務(wù)器氢架。
Web server 存在的意義是什么傻咖?
同一個(gè)服務(wù)器地址,有時(shí)候可能同時(shí)綁定了多個(gè)域名达箍。當(dāng)用戶通過(guò)不同域名進(jìn)行訪問(wèn)的時(shí)候没龙,Web server就起到了內(nèi)容分發(fā)的作用,為不同域名的用戶請(qǐng)求展示其相應(yīng)的內(nèi)容。
第四步硬纤、網(wǎng)站處理
第五步解滓、瀏覽器處理
- HTML字符串被瀏覽器接受后被一句句讀取解析
- 解析到link 標(biāo)簽后重新發(fā)送請(qǐng)求獲取css
- 解析到 script標(biāo)簽后發(fā)送請(qǐng)求獲取 js,并執(zhí)行代碼
- 解析到img 標(biāo)簽后發(fā)送請(qǐng)求獲取圖片資源
第六步筝家、繪制頁(yè)面
瀏覽器根據(jù) HTML 和 CSS 計(jì)算得到渲染樹(shù)洼裤,繪制到屏幕上。js 被執(zhí)行溪王。