從URL輸入到頁(yè)面展示發(fā)生了什么虫几?

在瀏覽器地址欄輸入U(xiǎn)RL到頁(yè)面展示在用戶面前的這個(gè)過程大致有以下幾個(gè)階段
  1. 域名解析(找到該網(wǎng)站的服務(wù)器ip是什么)
  2. 服務(wù)器處理(從該服務(wù)器中找到域名的網(wǎng)站)
  3. 網(wǎng)站處理(從網(wǎng)站中找到該域名對(duì)應(yīng)的各種html,css,js文件)
  4. 瀏覽器處理與繪制(把文件返回用戶瀏覽器隙轻,頁(yè)面呈現(xiàn))
URL是什么

URL(Uniform-Resource-Locator),中文名叫統(tǒng)一資源定位符始绍,用于定位互聯(lián)網(wǎng)上的資源趁耗。
基本的url有協(xié)議、域名疆虚、端口號(hào)(如果省略苛败,則為默認(rèn)端口號(hào))、路徑和文件名組成径簿,如http://www.domainname.com:80/myhtml/test.html 罢屈。
此url協(xié)議為http協(xié)議
域名為www.domainname.com
端口號(hào)為80
路徑為/myhtml/test.html,文件名為test.html篇亭。

URL常用的協(xié)議
  • http 超文本傳輸協(xié)議
  • https 加密的超文本傳輸協(xié)議
  • ftp 文件傳輸協(xié)議
  • file 訪問本地電腦上的文件
  • mailto 電子郵件地址

具體過程介紹

一缠捌、域名解析

世界上所有互聯(lián)網(wǎng)訪問者的瀏覽器都有將域名轉(zhuǎn)化為IP地址的請(qǐng)求(瀏覽器必須知道數(shù)字化的IP地址才能訪問網(wǎng)站)互聯(lián)網(wǎng)上的每臺(tái)設(shè)備都有他自己的ip地址,ip地址由四組數(shù)字組成译蒂,之間用點(diǎn)“.”連接曼月,如“127.0.0.1”,那么我們要訪問的網(wǎng)站所在的服務(wù)器也必然有對(duì)應(yīng)的ip地址柔昼,但是現(xiàn)實(shí)中我們不方便用數(shù)字記錄要訪問的網(wǎng)站哑芹,而具有語義化的域名很好的解決了這個(gè)問題。比如域名 www.baidu.com對(duì)應(yīng)的ip地址為202.108.22.5捕透,這就引出了DNS(domain name service)域名系統(tǒng)聪姿,DNS是因特網(wǎng)上域名和ip地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),里面記錄了成千上萬對(duì)域名和ip地址的對(duì)應(yīng)關(guān)系乙嘀。

域名解析的具體流程可以分為5步:

  1. 瀏覽器首先搜素自己的DNS緩存末购,如果沒有的話會(huì)執(zhí)行第二步
  2. 搜索系統(tǒng)上的hosts文件,看其中是否有域名和對(duì)應(yīng)ip虎谢,沒有的話執(zhí)行第三步
  3. 搜索路由器的DNS緩存盟榴,一般路由器也會(huì)緩存DNS一段時(shí)間,沒有的話執(zhí)行第四步
  4. 搜索ISP DNS緩存婴噩,ISP(Internet Service Provider)擎场,互聯(lián)網(wǎng)服務(wù)提供商,比如到電信的DNS上查找緩存讳推,如果都沒有找到顶籽,則向根域名服務(wù)器發(fā)送查找請(qǐng)求,根域名服務(wù)器會(huì)指引到該域名的權(quán)威域名服務(wù)器银觅,直到找到 IP礼饱。

8.8.8.8是Google提供的免費(fèi)的DNS服務(wù)器的ip地址
114.114.114.114是國(guó)內(nèi)第一個(gè),全球第三個(gè)開放的DNS服務(wù)器的ip地址

DNS劫持:是指一些刻意制造或無意中制造出來的域名服務(wù)器數(shù)據(jù)包,把域名指往不正確的IP地址

二镊绪、服務(wù)器處理

服務(wù)器是一臺(tái)安裝系統(tǒng)的機(jī)器匀伏,常見的系統(tǒng)如Linux、windows server2012等蝴韭。
系統(tǒng)里安裝的處理請(qǐng)求的應(yīng)用叫Web server(web服務(wù)器)够颠。
常見的web服務(wù)器有Apache、Nginx榄鉴、IIS履磨、Lighttpd。
web服務(wù)器接收用戶的請(qǐng)求庆尘,或者接受請(qǐng)求反向代理到其他 web服務(wù)器剃诅。
通常情況下,一臺(tái)服務(wù)器中有很多網(wǎng)站驶忌,web server可以根據(jù)請(qǐng)求的域名找到其對(duì)應(yīng)的網(wǎng)站矛辕,或者反向代理到其他web server,然后再把用戶的請(qǐng)求交給該網(wǎng)站的代碼進(jìn)行處理付魔,如下圖所示:


饑人谷服務(wù)器處理過程示意圖

三聊品、網(wǎng)站處理流程

饑人谷課件:MVC架構(gòu)網(wǎng)站處理流程示意圖

什么是MVC,M代表Model(模型):是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分几苍,通常模型對(duì)象負(fù)責(zé)在數(shù)據(jù)庫(kù)中存取數(shù)據(jù)翻屈。


MODEL模型

V代表View(視圖):是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。擦剑,通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的妖胀。(前端工程師主要負(fù)責(zé))


VIEW視圖

Controller(控制器):是應(yīng)用程序中處理用戶交互的部分,通郴堇眨控制器負(fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶輸入爬坑,并向模型發(fā)送數(shù)據(jù)纠屋。
Controller控制器
MVC處理流程

四、瀏覽器處理與繪制

  1. 瀏覽器是一個(gè)邊解析邊渲染的過程盾计,它首先解析HTML文件構(gòu)建DOM樹售担,然后解析CSS文件構(gòu)建渲染樹,待渲染樹構(gòu)建完成后署辉,瀏覽器開始布局渲染樹并將它繪制到屏幕上

  2. JS的解析是由瀏覽器的JS解析引擎完成的族铆,JS是單線程運(yùn)行,也就是說哭尝,在同一時(shí)間內(nèi)只能做一件事哥攘,所有的任務(wù)都需要排隊(duì),前一個(gè)任務(wù)結(jié)束,后一個(gè)任務(wù)才能開始逝淹。

  3. 瀏覽器在解析過程中耕姊,如果遇到請(qǐng)求外部資源時(shí)請(qǐng)求過程是異步的,并不會(huì)印象HTML文件的加載栅葡。但是當(dāng)文件加載過程中遇到JS文件茉兰,HTML文檔會(huì)暫停渲染過程,不僅要等待JS文件加載完畢欣簇,還要等待其執(zhí)行完畢规脸,原因是JS文件有可能更改文檔的DOM結(jié)構(gòu),也就是說JS文件執(zhí)行完畢前熊咽,后續(xù)所有資源的下載是沒有必要的莫鸭,這就是JS阻塞后續(xù)資源下載的根本原因。CSS文件的加載不影響JS文件的加載网棍,但是卻影響JS文件的執(zhí)行黔龟。JS代碼執(zhí)行前必須保證CSS文件已經(jīng)下載并加載完畢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末滥玷,一起剝皮案震驚了整個(gè)濱河市氏身,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惑畴,老刑警劉巖蛋欣,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異如贷,居然都是意外死亡陷虎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門杠袱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尚猿,“玉大人,你說我怎么就攤上這事楣富≡涞啵” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵纹蝴,是天一觀的道長(zhǎng)庄萎。 經(jīng)常有香客問我,道長(zhǎng)塘安,這世上最難降的妖魔是什么糠涛? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮兼犯,結(jié)果婚禮上忍捡,老公的妹妹穿的比我還像新娘集漾。我一直安慰自己,他們只是感情好锉罐,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布帆竹。 她就那樣靜靜地躺著,像睡著了一般脓规。 火紅的嫁衣襯著肌膚如雪栽连。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天侨舆,我揣著相機(jī)與錄音秒紧,去河邊找鬼。 笑死挨下,一個(gè)胖子當(dāng)著我的面吹牛熔恢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播臭笆,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼叙淌,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了愁铺?” 一聲冷哼從身側(cè)響起鹰霍,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茵乱,沒想到半個(gè)月后茂洒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瓶竭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年督勺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斤贰。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡智哀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出荧恍,到底是詐尸還是另有隱情盏触,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布块饺,位于F島的核電站,受9級(jí)特大地震影響雌芽,放射性物質(zhì)發(fā)生泄漏授艰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一世落、第九天 我趴在偏房一處隱蔽的房頂上張望淮腾。 院中可真熱鬧,春花似錦、人聲如沸谷朝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽圆凰。三九已至杈帐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間专钉,已是汗流浹背挑童。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留跃须,地道東北人站叼。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像菇民,于是被迫代替她去往敵國(guó)和親尽楔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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