url是什么
url(uniform resource location):統(tǒng)一資源定位符,用于定位互聯(lián)網(wǎng)上的資源
常用協(xié)議
http、https、ftp、file(本地)
//表示本鏈接是與本頁所用協(xié)議相同
輸入后第二步 域名解析
對于http://jirenhu.com的url,瀏覽器實際上不知道jirengu.com到底是什么東西,需要查找jirengu.com網(wǎng)站所在服務(wù)器的IP地址,才能找到目標(biāo)
為什么要發(fā)明域名,而不直接用IP?
太麻煩記不住,方便記憶
域名解析流程
- 瀏覽器緩存 - 瀏覽器會緩存DNS記錄一段時間
- 系統(tǒng)緩存 - 從Hosts文件中查找是否有該域名對應(yīng)的IP地址
- 路由器緩存 - 一般路由器也會緩存域名信息
- ISP DNS緩存 - 比如到電信的DNS上查找緩存
- 如果都沒查到,則向根域名服務(wù)器查找域名對于IP,根域名服務(wù)器把請求轉(zhuǎn)發(fā)到下一級,直到找到IP
在這里有必要說一下以下倆個問題:
1. 電腦上不了網(wǎng),為什么要把域名改為8.8.8.8或者114.114.114.114?
8.8.8.8實際上是Google提供的服務(wù)器,114是國內(nèi)的服務(wù)商,如果將DNS改為谷歌的他就不會從ISP什么的往下找了,他就直接去谷歌的服務(wù)器里去找了
2. DNS劫持是什么?
比如黑客攻擊了某個節(jié)點,把某個根域名服務(wù)器攻擊了,他管理著國內(nèi)外成千上萬個IP地址,比如你查找的是baidu.com,本來對應(yīng)的是baidu.com的IP,現(xiàn)在給你一個他自己的IP,這個時候你打開的baidu.com的網(wǎng)站其實是一個假的網(wǎng)站
第三步,服務(wù)器處理
服務(wù)器是一臺安裝系統(tǒng)的機器,常見的Linux,Window Server 2012,系統(tǒng)里安裝處理請求的應(yīng)用叫做Web Server
常見的Web服務(wù)器有Apache、Nginx、IIS、Lightted
Web服務(wù)器接收用戶的Request交給網(wǎng)站代碼,或者接受請求反向代理到其他Web服務(wù)器
其實他就是個入口,不同的域名可以解析到相同的IP地址,這個IP地址下的服務(wù)器可以管控多個項目,只要通過編寫配置文件讓不同的請求交給不同代碼就可以了。
第四步,網(wǎng)站處理流程
以MVC的架構(gòu)的項目為例,通過路由發(fā)發(fā)送請求到服務(wù)器提交給控制器,控制器向模型向數(shù)據(jù)庫組織數(shù)據(jù)返回給控制器,再由控制器把數(shù)據(jù)交給視圖組織頁面,把塞好數(shù)據(jù)的視圖由控制器返回給用戶,就得到了平時所看到的頁面
第五步,瀏覽器處理
Html字符串被瀏覽器接收后被一句句讀取解析
- 解析到link標(biāo)簽后重新發(fā)送請求獲取css
- 解析到script標(biāo)簽后發(fā)送請求獲取js,并執(zhí)行代碼
- 解析到img標(biāo)簽后發(fā)送請求獲取圖片
繪制網(wǎng)頁:瀏覽器根據(jù)Html和CSS計算得到渲染樹,繪制到屏幕上js會執(zhí)行