用戶打開瀏覽器,輸入 baidu.com,頁面展示百度首頁。整個(gè)過程發(fā)生了什么?

第一步:在瀏覽器輸入U(xiǎn)RL

  • 一般輸入域名baidu.com即可,網(wǎng)頁瀏覽器會(huì)自動(dòng)加上用戶輸入網(wǎng)頁中“http://www.”的部分,即URL為http://www.baidu.com

Q.http是什么?

超文本傳輸協(xié)議(Hyper Text Transfer Protocol),是一種用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應(yīng)用層協(xié)議。http是萬維網(wǎng)(www)的數(shù)據(jù)通信的基礎(chǔ)。用戶可以通過http請求獲得資源。

Q.URL是什么?

統(tǒng)一資源定位符(Uniform Resource Locator),有時(shí)也被俗稱為網(wǎng)頁地址(網(wǎng)址),用于定位互聯(lián)網(wǎng)上的資源。一個(gè)簡單的URL結(jié)構(gòu)一般為:協(xié)議://服務(wù)器名.域名/路徑

第二步:域名解析

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

  • 域名解析的流程為:

  1. 從瀏覽器緩存中解析——瀏覽器會(huì)緩存DNS記錄一段時(shí)間。

  2. 從系統(tǒng)緩存中解析——從Hosts文件查找是否有baidu.com這個(gè)域名對(duì)應(yīng)的IP。

  3. 從路由器緩存中解析——一般路由器會(huì)緩存域名信息。

  4. 從ISP DNS緩存中解析——比如從電信的DNS上查找緩存。

  5. 如果都沒有找到,則向根域名服務(wù)器查找域名對(duì)應(yīng)的IP,根域名服務(wù)器把請求轉(zhuǎn)發(fā)到下一級(jí),直到找到IP。

Q.DNS是什么?

域名系統(tǒng)(Domain Name System),是互聯(lián)網(wǎng)的一項(xiàng)服務(wù)。它作為將域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫,能夠使人更方便地訪問互聯(lián)網(wǎng)。

Q.IP地址是什么?

互聯(lián)網(wǎng)協(xié)議地址(Internet Protocol Addres),是分配給網(wǎng)絡(luò)上使用網(wǎng)際協(xié)議的設(shè)備的數(shù)字標(biāo)簽。每個(gè)處于互聯(lián)網(wǎng)中的設(shè)備都有IP地址,形如:192。168.0.1。

Q.為什么要發(fā)明域名,不直接用IP地址?

IP地址通常由一串?dāng)?shù)字組成,不方便用戶記憶,而域名起到一個(gè)將IP地址語義化的作用。

第三步:服務(wù)器處理

  • Web服務(wù)器接收用戶的處理請求并交給網(wǎng)站,或者接受請求反向代理到其他Web服務(wù)器。

第四步:網(wǎng)站處理

  • 采用MVC軟件架構(gòu)模式。

  • 網(wǎng)站接受到用戶的請求后,交給控制器處理,模型在數(shù)據(jù)庫里查找數(shù)據(jù)并返回給控制器,控制器將數(shù)據(jù)傳到視圖模版上,最后組合成一個(gè)HTML,再發(fā)送到瀏覽器。

Q.MVC是什么?

MVC模式是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model)、視圖(View)和控制器(Controller)。
控制器(Controller)—— 負(fù)責(zé)轉(zhuǎn)發(fā)請求,對(duì)請求進(jìn)行處理。
視圖(View)—— 界面設(shè)計(jì)人員進(jìn)行圖形界面設(shè)計(jì)。
模型(Model)——程序員編寫程序應(yīng)有的功能(實(shí)現(xiàn)算法等等)、數(shù)據(jù)庫專家進(jìn)行數(shù)據(jù)管理和數(shù)據(jù)庫設(shè)計(jì)(可以實(shí)現(xiàn)具體的功能)。

第五步:瀏覽器處理

  • HTML字符串被瀏覽器接受后被一句句讀取解析。
  1. 解析到Link標(biāo)簽后重新發(fā)送請求獲取CSS。

  2. 解析到Script標(biāo)簽后發(fā)送請求獲取JS,并執(zhí)行代碼。

  3. 解析到Img標(biāo)簽后發(fā)送請求獲取圖片資源。

第六步:繪制網(wǎng)頁

  • 瀏覽器根據(jù)HTML和CSS計(jì)算得到渲染樹,繪制到屏幕上,JS被執(zhí)行。于是就呈現(xiàn)出了百度首頁。

粗糙地區(qū)分一下域名、IP地址、DNS、服務(wù)器、瀏覽器、網(wǎng)頁
我做了一個(gè)比喻,就是兩個(gè)人通過手機(jī)互相通話的過程。域名好比你所通話對(duì)象在你通訊錄里面的備注,IP地址好比通話對(duì)象的手機(jī)號(hào)碼,DNS好比你手機(jī)的通訊錄,服務(wù)器好比運(yùn)營商,瀏覽器好比你的這部手機(jī),網(wǎng)頁好比就是你的通話對(duì)象。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容