從url輸入到展示

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?

太麻煩記不住,方便記憶

域名解析流程

  1. 瀏覽器緩存 - 瀏覽器會緩存DNS記錄一段時間
  2. 系統(tǒng)緩存 - 從Hosts文件中查找是否有該域名對應(yīng)的IP地址
  3. 路由器緩存 - 一般路由器也會緩存域名信息
  4. ISP DNS緩存 - 比如到電信的DNS上查找緩存
  5. 如果都沒查到,則向根域名服務(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ù)的視圖由控制器返回給用戶,就得到了平時所看到的頁面


image.png

第五步,瀏覽器處理

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

  • 解析到link標(biāo)簽后重新發(fā)送請求獲取css
  • 解析到script標(biāo)簽后發(fā)送請求獲取js,并執(zhí)行代碼
  • 解析到img標(biāo)簽后發(fā)送請求獲取圖片

繪制網(wǎng)頁:瀏覽器根據(jù)Html和CSS計算得到渲染樹,繪制到屏幕上js會執(zhí)行

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容