從URL輸入到網(wǎng)頁展示的過程

前言

扯一扯從你輸入網(wǎng)址到網(wǎng)頁呈現(xiàn)發(fā)生了什么犁柜。

一. 輸入URL

URL(Uniform Resource Locator)洲鸠,統(tǒng)一資源定位符,它是對可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址馋缅。互聯(lián)網(wǎng)上的每個文件都有一個唯一的URL萤悴,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它瘾腰。它也包含協(xié)議部分,是瀏覽器和萬維網(wǎng)之間溝通的方式覆履,常見的協(xié)議有http蹋盆、https、ftp硝全、file····

二 .域名的解析

當(dāng)你輸入http://baidu.com時栖雾,實際上瀏覽器并不知道baidu.com是什么東西,它需要查找baidu.com的所在服務(wù)器的IP地址才能找到目標(biāo)伟众。

1.什么是域名

例如在http://baidu.com中析藕,baidu.com就是該網(wǎng)址的域名。

2.為什么不直接使用IP地址而發(fā)明域名

因為域名比一串?dāng)?shù)字的IP地址更容易記住凳厢,所以使用域名账胧。

3.IP地址是什么

IP地址是指互聯(lián)網(wǎng)協(xié)議地址(Internet Protocol Address)。IP地址是IP協(xié)議提供的一種統(tǒng)一的地址格式先紫,它為互聯(lián)網(wǎng)上的每一個網(wǎng)絡(luò)和每一臺主機分配一個邏輯地址治泥,以此來屏蔽物理地址的差異。

  • 每個網(wǎng)絡(luò)上的設(shè)備都有IP地址例如192.168.0.1遮精。
  • 局域網(wǎng)的IP地址和公網(wǎng)的IP地址是有差異的居夹。
  • 127.0.0.1代表本機的IP地址。

4.域名解析的流程

  1. 瀏覽器會自動緩存DNS記錄一段時間,瀏覽器會檢查緩存中有沒有這個域名對應(yīng)的解析過的IP地址吮播,如果有解析過程就此結(jié)束。
  2. 系統(tǒng)緩存眼俊,從系統(tǒng)Hosts文件中查找是否有該域名和對應(yīng)的IP意狠。
  3. 路由器緩存,一般路由器也會緩存域名信息疮胖。
  4. IPS DNS緩存- 比如到電信的DNS 上查找緩存环戈。
  5. 如果以上方法都沒有找到,則向根域名服務(wù)器查找對應(yīng)的IP地址澎灸,根域名服務(wù)器把請求轉(zhuǎn)發(fā)到下一級院塞,一直到找到IP。

問:當(dāng)電腦上不了網(wǎng)了性昭,為什么修改DNS為8.8.8.8或者114.114.114.114?

答:8.8.8.8是谷歌提供的DNS服務(wù)器拦止,跳過上述步驟1-5,直接在谷歌提供的DNS服務(wù)器里查找該域名糜颠。同理114.114.114.114是電信提供的DNS服務(wù)器汹族。

經(jīng)過以上IP尋址的過程,目標(biāo)URL查找到對應(yīng)的IP地址之后其兴,通過IP地址查找到對應(yīng)的服務(wù)器顶瞒,瀏覽器將用戶發(fā)起的http請求發(fā)送給服務(wù)器。下一步就到了服務(wù)器處理階段的工作元旬。

三.服務(wù)器處理

每臺服務(wù)器上都會安裝處理請求的應(yīng)用web server榴徐,常見的web server產(chǎn)品有Apache、Nginx匀归、IIS坑资、Lighttpd····

web server 擔(dān)任管控的角色,對于不同用戶發(fā)送的請求穆端,會結(jié)合配置文件盐茎,把不同請求委托給服務(wù)器上處理對應(yīng)請求的程序進行處理(例如CGI腳本,JSP腳本徙赢,servlets字柠,ASP腳本,Node.js狡赐,或者一些其它的服務(wù)器端技術(shù)等)窑业,然后返回后臺程序處理產(chǎn)生的結(jié)果作為響應(yīng)。

四.網(wǎng)站處理階段

MVC

MVC是一種使用MVC(Model-View-Control 模型-視圖-控制器)設(shè)計創(chuàng)建web程序的模式枕屉。

MVC
MVC
  • Model(模型)模型是將實際開發(fā)中的業(yè)務(wù)規(guī)則和所涉及的數(shù)據(jù)格式模型化常柄,應(yīng)用于模型的代碼只需寫一次就可以被多個視圖重用。在MVC的三個部件中,模型擁有最多的處理任務(wù)西潘。一個模型能為多個視圖提供數(shù)據(jù)卷玉。*
  • View(視圖)是應(yīng)用程序中用于處理程序數(shù)據(jù)邏輯部分。
  • Control(控制器)控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求喷市。Controller處于管理角色相种,從視圖接收請求并決定調(diào)用哪個模型構(gòu)件去處理請求,然后再確定用哪個視圖來顯示模型處理返回的數(shù)據(jù)品姓。

總結(jié)而言寝并,首先控制器接收用戶的請求,并決定應(yīng)該調(diào)用哪個模型來進行處理腹备,然后模型用業(yè)務(wù)邏輯來處理用戶的請求并返回數(shù)據(jù)衬潦,最后控制器用相應(yīng)的視圖格式化模型返回html字符串給瀏覽器,瀏覽器呈現(xiàn)網(wǎng)頁給用戶植酥。因此镀岛,下一步就來到瀏覽器處理階段。

瀏覽器處理

HTML字符串被瀏覽器接受后被一句句讀取解析友驮,解析到link 標(biāo)簽后重新發(fā)送請求獲取css哎媚,解析到,script標(biāo)簽后發(fā)送請求獲取 js喊儡,并執(zhí)行代碼拨与,解析到img 標(biāo)簽后發(fā)送請求獲取圖片資源。

加載

瀏覽器對html頁面的加載是自頂向下的艾猜,并在加載的過程中進行解析與渲染买喧。遇到link,image匆赃,script標(biāo)簽時瀏覽器會再次向服務(wù)器發(fā)送請求獲取相應(yīng)的css文件淤毛,圖片文件,js文件算柳,并執(zhí)行js代碼低淡。

解析與渲染

將html文檔解析生成解析樹(DOM樹),這是由DOM元素以及屬性節(jié)點組成瞬项,樹根是document對象蔗蹋。

構(gòu)建渲染樹是DOM樹可視化的表示,目的是為了以正確的順序繪制文檔內(nèi)容囱淋。不可見的DOM元素不會被插入渲染樹中(例如display:none;),還有像一些節(jié)點的位置為絕對或浮動定位猪杭,這些節(jié)點會在文本流之外,因此會在兩棵樹上的不同位置妥衣,渲染樹標(biāo)識出真實的位置皂吮,并用一個占位結(jié)構(gòu)標(biāo)識出他們原來的位置戒傻。

六. 繪制網(wǎng)站

瀏覽器根據(jù)渲染樹繪制網(wǎng)站并最終展現(xiàn)在瀏覽器上。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜂筹,一起剝皮案震驚了整個濱河市需纳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌艺挪,老刑警劉巖不翩,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異闺属,居然都是意外死亡,警方通過查閱死者的電腦和手機周霉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門掂器,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人俱箱,你說我怎么就攤上這事国瓮。” “怎么了狞谱?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵乃摹,是天一觀的道長。 經(jīng)常有香客問我跟衅,道長孵睬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任伶跷,我火速辦了婚禮掰读,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘叭莫。我一直安慰自己蹈集,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布雇初。 她就那樣靜靜地躺著拢肆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪靖诗。 梳的紋絲不亂的頭發(fā)上郭怪,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音刊橘,去河邊找鬼移盆。 笑死,一個胖子當(dāng)著我的面吹牛伤为,可吹牛的內(nèi)容都是我干的咒循。 我是一名探鬼主播据途,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼叙甸!你這毒婦竟也來了颖医?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤裆蒸,失蹤者是張志新(化名)和其女友劉穎熔萧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體僚祷,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡佛致,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了辙谜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俺榆。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖装哆,靈堂內(nèi)的尸體忽然破棺而出罐脊,到底是詐尸還是另有隱情,我是刑警寧澤蜕琴,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布萍桌,位于F島的核電站,受9級特大地震影響凌简,放射性物質(zhì)發(fā)生泄漏上炎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一雏搂、第九天 我趴在偏房一處隱蔽的房頂上張望反症。 院中可真熱鬧,春花似錦畔派、人聲如沸铅碍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胞谈。三九已至,卻和暖如春憨愉,著一層夾襖步出監(jiān)牢的瞬間烦绳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工配紫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留径密,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓躺孝,卻偏偏與公主長得像享扔,于是被迫代替她去往敵國和親底桂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

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