從輸入網址到瀏覽器把頁面展現出來一要經過以下幾個步驟:
- 在瀏覽器輸入URL
- 域名解析
- 服務器處理
- 網站處理
- 瀏覽器處理
- 繪制頁面
第一步、在瀏覽器輸入URL
什么是URL?
URL: 統一資源定位符,用于定位互聯網上的資源
URL由那些部分組成?
傳輸協議+域名或IP地址+端口(缺損為80)+資源具體地址
例如:http://www.baidu.com/index.php
(傳輸協議為http
,域名或IP是www.baidu.com
,資源具體地址為index.php
)
傳輸協議有哪些?
http、https、ftp、file
第二步、域名解析
當我們輸入 http://www.baidu.com
的時候其實瀏覽器是不知道www.baidu.com
是什么東西的,需要查找www.baidu.com
網站所在服務器的IP地址,才能找到目標。
服務器的IP地址是如何查找的?
- 瀏覽器緩存 – 瀏覽器會緩存DNS記錄一段時間
- 系統緩存 - 從 Hosts 文件查找是否有該域名和對應 IP。
- 路由器緩存 – 一般路由器也會緩存域名信息。
- ISP DNS 緩存 – 比如到電信的 DNS 上查找緩存。
- 如果都沒有找到,則向根域名服務器查找域名對應 IP,根域名(如.com)服務器把請求轉發到下一級,直到找到 IP
第三步、服務器處理
服務器是一臺安裝系統的機器,常見的系統如Linux、windows server 2012,并且系統里安裝有處理請求的應用 Web server。
Web server是什么?
接收用戶的Request 交給網站代碼,或者接受請求反向代理到其他 web服務器。
Web server 存在的意義是什么?
同一個服務器地址,有時候可能同時綁定了多個域名。當用戶通過不同域名進行訪問的時候,Web server就起到了內容分發的作用,為不同域名的用戶請求展示其相應的內容。
第四步、網站處理
Paste_Image.png
第五步、瀏覽器處理
- HTML字符串被瀏覽器接受后被一句句讀取解析
- 解析到link 標簽后重新發送請求獲取css
- 解析到 script標簽后發送請求獲取 js,并執行代碼
- 解析到img 標簽后發送請求獲取圖片資源
第六步、繪制頁面
瀏覽器根據 HTML 和 CSS 計算得到渲染樹,繪制到屏幕上。js 被執行。