url地址請求的完整過程

從一個url地址到最終頁面渲染髮生的事情?

1.DNS解析:將域名地址解析成ip地址

    --- 瀏覽器DNS緩存css

    --- 系統DNS緩存瀏覽器

    --- 路由器DNS緩存緩存

    --- 網絡運營商DNS緩存服務器

    --- 若都沒找到則進行遞歸搜索: 例:blog.baidu.com網絡

        == .com域名下查找DNS解析dom

        == .baidu域名下查找DNS解析佈局

        ==  blog域名下查找DNS解析url

        ==   出錯了blog

 

2. TCP鏈接 :TCP三次握手

    ---- 第一次握手: 由瀏覽器發起,告訴服務器我要請求數據了遞歸

    ---- 第二次握手: 由服務器發出,告訴瀏覽器我準備好要接受數據了,你能夠發送請求了

    ---- 第三次握手: 由瀏覽器發出,告訴服務器我立刻就發,你準備接受

3. 發送請求

    ---- 發送請求:HTTP協議的通訊內容

4. 接受響應

    ---- 響應報文

5. 渲染頁面

    ---- 碰見HTML標記,瀏覽器調用HTML解析器解析成Token並構建成dom樹

    ---- 碰見style / link 標記,瀏覽器調用css解析器,處理css標記並構建cssom樹

    ---- 碰見script標記,調用JavaScript解析器處理script代碼(綁定事件,修改dom樹、cssom樹。。。。)

    ---- 將dom樹和cssom樹合併成一個渲染樹

    ---- 根據渲染樹來計算佈局,計算每一個節點的意義(佈局)

    ---- 將各個節點的顏色繪製到屏幕上(渲染)

    注意:  這幾個步驟不必定是按照順序執行,若是dom樹被修改了就會執行屢次佈局和渲染,每每實際頁面這些步驟都會執行屢次

6.斷開鏈接:TCP四次揮手

    第一次揮手:由瀏覽器發起,發送給服務器,我東西發完了(請求報文),你準備關閉吧

    第二次揮手:由服務器發起,告訴瀏覽器,我東西接受完了(請求報文),我準備關閉了,你也準備好

 

    第三次揮手:有服務器發起,告訴瀏覽器,我東西發送完了(響應報文),你準備關吧

    第四次揮手:由瀏覽器發起,告訴服務器,我東西接受完了,我準備關了,你也準備好吧

相關文章
相關標籤/搜索