前端面試題:從URL輸入到頁面實(shí)現(xiàn)

當(dāng)用戶打開瀏覽器内贮,輸入 baidu.com,頁面展示百度首頁赏半。整個(gè)過程發(fā)生了什么贺归?
輸入baidu.com尖啡,敲起回車尤辱,將域名baidu.com通過DNS域名解析成IP地址痴颊,然后向該IP地址的服務(wù)器發(fā)起請(qǐng)求牲剃,服務(wù)器響應(yīng)并進(jìn)行處理护昧,往瀏覽器(客戶端)發(fā)送HTML等等的文件滥玷,瀏覽器收到文件后進(jìn)行解析處理两疚,在通過瀏覽器渲染把頁面呈現(xiàn)到我們的屏幕上量窘。

image.png

下面我們?cè)敿?xì)解釋這一過程...

一.在瀏覽器輸入U(xiǎn)RL

1.URL是什么埃撵?

談到URL,不得不提一下URI(Uniform Resource Identifier),統(tǒng)一資源標(biāo)識(shí)符赵颅,用于標(biāo)識(shí)資源。URI是一種可以用于WWW之外的高效識(shí)別碼暂刘,它被用于主頁地址饺谬、電子郵件、電話號(hào)碼等各種組合中谣拣,如下表示:
** http://www.rfc-editor.org/rfc/rfc4395.txt **
** http://www.ietf.org:80/index.html **
** http://localhost:631 **
這些例子屬于一般主頁網(wǎng)址募寨,也被叫做URL(Uniform Resource Locator)。URL常被人們用來表示互聯(lián)網(wǎng)中資源文件的具體位置森缠。但是URI不局限標(biāo)識(shí)互聯(lián)網(wǎng)資源拔鹰,它可以作為所有資源的識(shí)別碼。現(xiàn)在贵涵,在有效的RFC文檔中列肢,已經(jīng)不使用URL,轉(zhuǎn)而在使用URI。相比URL狹義的概念宾茂,URI是一個(gè)廣義的概念瓷马。因此,URI可以用于除了www之外的其他應(yīng)用協(xié)議中跨晴。

URL組成:URL由協(xié)議决采,域名,端口坟奥,文件路徑組成
例子:https://github.com:8080/zhuanghaixin
協(xié)議:傳輸?shù)膮f(xié)議树瞭,比如http拇厢、https、ftp晒喷、file 協(xié)議
域名:github.com即為域名,一個(gè)URL中孝偎,也可以使用IP地址作為域名使用
端口:跟在域名后面的是端口,域名和端口之間使用“:”作為分隔符凉敲。端口不是一個(gè)URL必須的部分衣盾,如果省略端口部分,將采用默認(rèn)端口
文件路徑:/zhuanghaixin即為文件的路徑

二.域名解析

1.域名是什么爷抓?

以一個(gè)常見的域名為例說明势决,baidu網(wǎng)址是由二部分組成,標(biāo)號(hào)“baidu”是這個(gè)域名的主域名
體蓝撇,而最后的標(biāo)號(hào)“com”則是該域名的后綴果复,代表的這是一個(gè)com國際域名,是頂級(jí)域名渤昌。而前面的www.是網(wǎng)絡(luò)名虽抄, 為www的域名。

2. IP地址是什么独柑?

IP地址是指互聯(lián)網(wǎng)協(xié)議地址(英語:Internet Protocol Address迈窟,又譯為網(wǎng)際協(xié)議地址),是IP Address的縮寫忌栅。IP地址是IP協(xié)議提供的一種統(tǒng)一的地址格式车酣,它為互聯(lián)網(wǎng)上的每一個(gè)網(wǎng)絡(luò)和每一臺(tái)主機(jī)分配一個(gè)邏輯地址,以此來屏蔽物理地址的差異索绪。目前還有些ip代理軟件湖员,但大部分都收費(fèi)。

  • 每個(gè)處于互聯(lián)網(wǎng)中的設(shè)備都有IP 地址者春,形如 192.168.0.1
  • 局域網(wǎng) IP 和公網(wǎng) IP 是有差別的
  • 127.0.0.1代表本機(jī)的 IP

3.域名解析的流程

對(duì)于 http://www.baidu.com, 瀏覽器實(shí)際上不知道 www.baidu.com到底是什么東西,需要查找baidu.com網(wǎng)站所在服務(wù)器的IP地址清女,才能找到目標(biāo)钱烟。
尋找過程:

  • 瀏覽器緩存,瀏覽器會(huì)緩存DNS記錄一段時(shí)間
image.png
  • 系統(tǒng)緩存 - 從 Hosts 文件查找是否有該域名和對(duì)應(yīng) IP
image.png
  • 路由器緩存 – 一般路由器也會(huì)緩存域名信息
  • ISP DNS 緩存 – 比如到電信的 DNS 上查找緩存
image.png
image.png
  • 如果都沒有找到嫡丙,則向根域名服務(wù)器查找域名對(duì)應(yīng) IP拴袭,根域名服務(wù)器把請(qǐng)求轉(zhuǎn)發(fā)到下一級(jí),直到找到 IP曙博。
    比如說瀏覽器想要查詢www.baidu.com的IP地址拥刻,前面的方法都找不到,它就開始查詢根服務(wù)器父泳,找到com域名解析服務(wù)器般哼,然后查詢com解析服務(wù)器吴汪,找到baidu.com域名解析服務(wù)器,最好查詢baidu.com域名解析服務(wù)器蒸眠,獲得www.baidu.com的IP地址漾橙。
image.png
image.png

三.服務(wù)器處理

1.服務(wù)器是什么?

服務(wù)器是一臺(tái)安裝系統(tǒng)的機(jī)器楞卡,常見的系統(tǒng)如Linux霜运、windows server 2012。系統(tǒng)里安裝的處理請(qǐng)求的應(yīng)用叫 Web server蒋腮。常見的 web服務(wù)器有 Apache淘捡、Nginx、IIS池摧、Lighttpd焦除。

2.web服務(wù)器的作用?

瀏覽器把用戶發(fā)起的HTTP請(qǐng)求發(fā)送給服務(wù)器后险绘,Web server會(huì)進(jìn)而在它做自己的存儲(chǔ)空間中搜索所請(qǐng)求的文件(因?yàn)橥粋€(gè)服務(wù)器地址踢京,有時(shí)候可能同時(shí)綁定了多個(gè)域名,此時(shí)需要配置web服務(wù)器將請(qǐng)求轉(zhuǎn)給相應(yīng)的端口)宦棺。當(dāng)找到這文件時(shí)瓣距,這個(gè)服務(wù)器會(huì)讀取它,按需處理它代咸,并且把它傳送回瀏覽器蹈丸。Web server就相對(duì)于起到了內(nèi)容分發(fā)的作用,為不同域名的用戶請(qǐng)求展示其相應(yīng)的內(nèi)容,如下圖呐芥。


四.網(wǎng)站處理

這一步指的是網(wǎng)站后臺(tái)處理數(shù)據(jù)反饋給瀏覽器之前的過程逻杖,常見的處理模型有MVC 模型(model)-視圖(view)-控制器(controller),控制器從數(shù)據(jù)模型中拿到數(shù)據(jù)思瘟,再從試圖中拿到HTML荸百,經(jīng)過處理,返回html字符串給瀏覽器滨攻。


五.瀏覽器處理

HTML字符串被瀏覽器接受后被一句句讀取解析
解析到link 標(biāo)簽后重新發(fā)送請(qǐng)求獲取css

解析到 script標(biāo)簽后發(fā)送請(qǐng)求獲取 js够话,并執(zhí)行代碼

解析到img 標(biāo)簽后發(fā)送請(qǐng)求獲取圖片資源

六.繪制網(wǎng)頁

瀏覽器根據(jù) HTML 和 CSS 計(jì)算得到渲染樹,繪制到屏幕上光绕,并且js 會(huì)被執(zhí)行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末女嘲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子诞帐,更是在濱河造成了極大的恐慌欣尼,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件停蕉,死亡現(xiàn)場(chǎng)離奇詭異愕鼓,居然都是意外死亡钙态,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門拒啰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驯绎,“玉大人,你說我怎么就攤上這事谋旦∈JВ” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵册着,是天一觀的道長拴孤。 經(jīng)常有香客問我,道長甲捏,這世上最難降的妖魔是什么演熟? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮司顿,結(jié)果婚禮上芒粹,老公的妹妹穿的比我還像新娘。我一直安慰自己大溜,他們只是感情好化漆,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钦奋,像睡著了一般座云。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上付材,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天朦拖,我揣著相機(jī)與錄音,去河邊找鬼厌衔。 笑死璧帝,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的富寿。 我是一名探鬼主播睬隶,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼作喘!你這毒婦竟也來了理疙?” 一聲冷哼從身側(cè)響起晕城,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤泞坦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后砖顷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贰锁,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赃梧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了豌熄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片授嘀。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锣险,靈堂內(nèi)的尸體忽然破棺而出蹄皱,到底是詐尸還是另有隱情,我是刑警寧澤芯肤,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布巷折,位于F島的核電站,受9級(jí)特大地震影響崖咨,放射性物質(zhì)發(fā)生泄漏锻拘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一击蹲、第九天 我趴在偏房一處隱蔽的房頂上張望署拟。 院中可真熱鬧,春花似錦歌豺、人聲如沸推穷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缨恒。三九已至,卻和暖如春轮听,著一層夾襖步出監(jiān)牢的瞬間骗露,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國打工血巍, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萧锉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓述寡,卻偏偏與公主長得像柿隙,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鲫凶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

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