從URL輸入到頁面展現(xiàn)

1.在瀏覽器輸入URL

URL是什么?

URL—>Uniform Resource Locator—>統(tǒng)一資源定位符,如同在網(wǎng)絡(luò)上的門牌,是因特網(wǎng)上標(biāo)準(zhǔn)的資源的地址(Address),互聯(lián)網(wǎng)上的每個文件都有一個唯一的URL,俗稱網(wǎng)頁地址。
URL組成:URL由協(xié)議,域名,端口,文件路徑組成
例如:https://jirengu.com/app/album/index

2.域名解析

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

域名解析流程

瀏覽器緩存 – 瀏覽器會緩存DNS記錄一段時間
系統(tǒng)緩存 - 從 Hosts 文件查找是否有該域名和對應(yīng) IP。
路由器緩存 – 一般路由器也會緩存域名信息。
ISP DNS 緩存 – 比如到電信的 DNS 上查找緩存。
如果都沒有找到,則向根域名服務(wù)器查找域名對應(yīng) IP,根域名服務(wù)器把請求轉(zhuǎn)發(fā)到下一級,直到找到 IP

3. 服務(wù)器處理

什么是服務(wù)器?

服務(wù)器是一臺安裝系統(tǒng)的機(jī)器,常見的系統(tǒng)如Linux、windows server 2012
系統(tǒng)里安裝的處理請求的應(yīng)用叫 Web server
常見的 web服務(wù)器有 Apache、Nginx、IIS、Lighttpd

Web server是什么?

接收用戶的請求交給網(wǎng)站代碼,或者接受請求反向代理到其他 web服務(wù)器。
Web server可以代指硬件或軟件,它們是協(xié)同工作的。

  • 在硬件部分,一個網(wǎng)絡(luò)服務(wù)器是一個用來存儲網(wǎng)站的組成文件(比如說 HTML 文檔,圖片,CSS 樣式表,和 JavaScript 文件)以及交付它們到終端用戶的設(shè)備的計(jì)算機(jī)。它跟互聯(lián)網(wǎng)連接并可以通過域名像 mozilla.org 來被訪問。
  • 在軟件部分,一個網(wǎng)絡(luò)服務(wù)器包括幾個控制網(wǎng)絡(luò)用戶如何訪問托管文件的部分,至少是一個 HTTP 服務(wù)器 [HTTP server]。一個 HTTP 服務(wù)器是一個能理解URLs (網(wǎng)絡(luò)地址) 和 HTTP 的軟件。

Web server存在的意義是什么?

瀏覽器把用戶發(fā)起的HTTP請求發(fā)送給服務(wù)器后,Web server會進(jìn)而在它做自己的存儲空間中搜索所請求的文件(因?yàn)橥粋€服務(wù)器地址,有時候可能同時綁定了多個域名)。當(dāng)找到這文件時,這個服務(wù)器會讀取它,按需處理它,并且把它傳送回瀏覽器。Web server就相對于起到了內(nèi)容分發(fā)的作用,為不同域名的用戶請求展示其相應(yīng)的內(nèi)容。下圖很清楚的表達(dá)了這些內(nèi)容。


4.網(wǎng)站處理流程

這一步實(shí)際上就是后臺處理數(shù)據(jù)反饋給瀏覽器之前的過程,拿MVC設(shè)計(jì)模式來說,就是控制器接收用戶請求,然后調(diào)用相應(yīng)的數(shù)據(jù)模型,按照相應(yīng)的業(yè)務(wù)邏輯處理請求返回的數(shù)據(jù),然后再經(jīng)過控制器處理,返回html字符串給瀏覽器。如下圖:


5.瀏覽器處理

  • 加載
    瀏覽器對一個html頁面的加載順序是從上而下的,并在加載過程并行進(jìn)行解析渲染處理。在這個過程中遇到link標(biāo)簽、image標(biāo)簽、script標(biāo)簽時,瀏覽器會再次向服務(wù)器發(fā)送請求獲取css文件、圖片資源、js文件,并執(zhí)行js代碼,同步進(jìn)行加載解析。
  • 解析.渲染
    解析的過程,其實(shí)就是生成解析樹,即dom樹。dom樹是由dom元素及屬性節(jié)點(diǎn)組成,加上css解析的樣式對象和js解析后的動作實(shí)現(xiàn)。而渲染,就是將DOM樹進(jìn)行可視化表示。下一步就來到了繪制網(wǎng)頁的工作階段。

6.網(wǎng)頁制作

瀏覽器通過上面步驟計(jì)算得到渲染樹,是DOM樹的可視化表示,構(gòu)建渲染樹使頁面以正確的順序繪制出來,遵循一定的渲染規(guī)則,經(jīng)過一系列的渲染工作,實(shí)現(xiàn)網(wǎng)站頁面的繪制,由此最終完成了頁面展示。

總結(jié):

經(jīng)過以上分析,我們來總結(jié)一下從URL輸入到頁面展現(xiàn)發(fā)生了什么
1.輸入URL
2.瀏覽器進(jìn)行域名解析
3.服務(wù)器處理用戶請求
4.網(wǎng)站處理
5.瀏覽器處理
6.網(wǎng)頁繪制

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

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

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