域名與DNS解析知識問答:
- 能經過域名直接訪問到一臺機器嗎 --- 不能夠
- 那爲甚麼要用域名 --- IP地址很差記
- 那域名訪問怎麼成功的呢 --- 用域名和IP造成對應關係
- 什麼是DNS --- 把域名翻譯成IP地址的軟件稱爲域名系統,即DNS
- 計算機是不知道域名對應的IP的
- 但每一個路由器裏都有一個Ip的域名映射表,若認識這個Ip,路由器就直接返回Ip,計算機就訪問這個Ip
從輸入url至頁面完成渲染的經歷了什麼:
一.DNS解析
- 首先看瀏覽器緩存
- 而後看本機host
- 而後看家裏的路由器
- 問路由器,若路由器認識這個域名,就返回一個IP,而後計算機訪問這個IP
- 若路由器不認識,他就問上一層路由器 (如本身家樓的路由器)
- 問城市這個級別的路由器,即LDNS服務器(本地DNS解析器)
- 若是LDNS服務器不認識這個域名,繼續向上級DNS服務器查找-即gDNS服務器(全球DNS解析器)
- 互聯網創建的時候,共建立了13臺總的DNS服務器,找到總的DNS服務器時必定會找到映射的(通常找不到)
- 找到結果後就會把IP和域名驚醒緩存緩存加到上面的層,(但除了本機host,其不緩存)
二. 創建TCP鏈接-3次握手
- 第一次握手,由瀏覽器發起,告訴服務器我要發送請求
- 第二次握手,由服務器發起,告訴瀏覽器我準備接收了,你趕忙發吧
- 第三次握手,由瀏覽器發送,告訴服務器我立刻就發了,準備接收吧
三. 發送請求
四. 接收響應
五. 渲染頁面
- 碰見HTML標記,瀏覽器調用HTML解析器解析成Token並構建成dom樹
- 碰見style/link標記,瀏覽器調用css解析器,處理css標記並構建cssom樹
- 碰見script標記,調用javascript解析,處理script代碼(綁定事件,修改dom樹/cssom樹)
- 將dom樹和cssom樹合併成一個渲染樹
- 根據渲染樹來計算佈局,計算每一個節點的幾何信息(佈局)
- 將各個節點顏色繪製到屏幕上(渲染)
注:
這5個步驟不必定按照順序執行,若是dom樹或cssom樹被修改了,可能會執行屢次佈局和渲染,每每實際頁面中,這些步驟都會執行屢次的
複製代碼
六. 斷開鏈接,TCP四次揮手
- 第一次揮手,由瀏覽器發起,發送給服務器,我東西發完了(請求報文),你準備關閉吧
- 第二次揮手,由服務器發起,告訴瀏覽器,我東西接收完了(請求報文 ),我準備關閉了,你也準備吧
- 第三次揮手, 由服務器發起,告訴瀏覽器,我東西發送完了(響應報文),你準備關閉吧
- 第四次揮手 ,由瀏覽器發起,告訴服務器,我準備關閉了(響應報文),你也準備吧