從URL輸入到頁面展現(xiàn)發(fā)生了什么

從輸入網(wǎng)址到頁面展現(xiàn),我們分為六個步驟:

  1. 在瀏覽器中輸入URL
  2. 域名解析
  3. 服務(wù)器處理
  4. 網(wǎng)站解析
  5. 瀏覽器處理
  6. 渲染網(wǎng)頁

1. 在瀏覽器中輸入URL

URL是什么?

URL(Uniform Resource Locator)是統(tǒng)一資源定位符,是對可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示?;ヂ?lián)網(wǎng)上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它?;綰RL包含稱協(xié)議、服務(wù)器名稱(或IP地址)、路徑和文件名。

協(xié)議是什么?

協(xié)議是從該計算機獲取資源的方式,常見的是http、https、sftp、file,不同協(xié)議有不同的通訊內(nèi)容格式。http最為常見,http較https多了一層加密,file是常見的文件協(xié)議。

2. 域名解析

當我們輸入www.baidu.com的時候其實瀏覽器是不知道www.baidu.com是什么東西的,需要查找www.baidu.com網(wǎng)站所在服務(wù)器的IP地址,才能找到目標。

服務(wù)器怎么查找IP地址?

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

3. 服務(wù)器處理

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

4. 網(wǎng)站處理

通常采用MVC模式,MVC :模型(Model)+視圖(View)+控制器(Controller)。

  • 模型
    模型是將實際開發(fā)中的業(yè)務(wù)規(guī)則和所涉及的數(shù)據(jù)格式模型化,應(yīng)用于模型的代碼只需寫一次就可以被多個視圖重用。在MVC的三個部件中,模型擁有最多的處理任務(wù)。一個模型能為多個視圖提供數(shù)據(jù)。
  • 視圖
    視圖是用戶看到并與之交互的界面。這是前端工作的主力部分。
  • 控制器
    控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。Controller處于管理角色,從視圖接收請求并決定調(diào)用哪個模型構(gòu)件去處理請求,然后再確定用哪個視圖來顯示模型處理返回的數(shù)據(jù)。


    mvc

5. 瀏覽器處理

通過后臺處理返回的html字符串結(jié)果會被瀏覽器讀取解析,對應(yīng)就是html頁面加載、解析、渲染的工作。

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

6. 渲染網(wǎng)頁

瀏覽器根據(jù) HTML 和 CSS 計算得到渲染樹,繪制到屏幕上。js 被執(zhí)行。

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

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

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