先說說大概的流程
- 輸入URL
- 瀏覽器進行域名解析
- 服務器處理用戶請求
- 網站處理
- 瀏覽器處理
- 繪制網頁
對每一步的具體說明
輸入URL:
- 什么是URL:URL的全稱是Uniform Resource Locator,翻譯過來就是統一資源定位符,說白了就是網站的網址,或者說域名。URL包含協議部分,是瀏覽器和www萬維網之間的溝通方式,它會告訴瀏覽器正確在網路上找到資源位置。常見的協議有http、https、ftp、file等。其中http是最常見的網絡傳輸協議,而https則是進行加密的網絡傳輸。
瀏覽器進行域名解析
- 也就是DNS解析。DNS解析的過程如下:瀏覽器會依次從瀏覽器緩存、系統緩存、路由器緩存、IP DNS 緩存中查找是否有緩存的DNS信息,若沒找到目標URL對應的IP的話,就會向根域名DNS服務器查找目標URL的對應IP,根域名服務器會向下級服務器轉送請求,層層下發,直至找到對應IP為止
服務器處理用戶請求
- 什么是服務器?服務器就是一臺機器安裝系統的機器,每個服務器里都安裝有處理請求的應用——web server。常見的web server產品有apache、nginx、IIS或Lighttpd等。
- web服務器接收用戶的Request 交給網站代碼,或者接受請求反向代理到其他 web服務器
網站處理
- web服務器接收用戶的Request 交給網站代碼,然后返回后臺程序處理產生的結果作為響應。網站處理實際上就是這里的后臺程序處理。后臺程序處理時大部分都會用到MVC框架
- MVC框架:將應用程序分成三個核心部件:模型(model)-- 視圖(view)--控制器(controller),它們各自處理自己的任務,實現輸入、處理和輸出的分離。前端的主要工作就是視圖view部分
- 總結而言,網站處理這一步是這樣的:首先控制器接收用戶的請求,并決定應該調用哪個模型來進行處理,然后模型用業務邏輯來處理用戶的請求并返回數據,最后控制器用相應的視圖格式化模型返回html字符串給瀏覽器
瀏覽器處理
- HTML字符串被瀏覽器接受后被一句句讀取解析:
解析到link 標簽后重新發送請求獲取css
解析到 script標簽后發送請求獲取 js,并執行代碼
解析到img 標簽后發送請求獲取圖片資源
繪制網頁
瀏覽器根據 HTML 和 CSS 計算得到渲染樹(DOM樹的可視化表示),繪制到屏幕上,js也 會被執行,最終完成了整個頁面的展示
參考:饑人谷_huangyh_max
說說從URL輸入到頁面展現的過程
http://www.lxweimin.com/p/58e4597f9c7d