1. 程式人生 > >從瀏覽器輸入域名到展示頁面都發生了什麽

從瀏覽器輸入域名到展示頁面都發生了什麽

blog 展示 完成 結果 pos 組成 大致 域名解析 服務

    • DNS域名解析
      先找本地hosts文件,檢查對應域名ip的關系,有則想ip地址發送請求,沒有再去找DNS服務器
    • 建立TCP連接
      拿到服務器IP後,向服務器發送求求,三次握手,建立TCP連接
      簡單理解三次握手:
      客戶端:您好,在家不,有你快遞
      服務端:在的,送來吧
      客戶端:好滴,來了
    • 發送HTTP請求
      與服務器建立連接後,就可以向服務器發起請求了。具體請求內容可以在瀏覽器中查看
    • 服務器處理請求
      服務器收到請求後由web服務器(Apache,Nginx)處理請求,web服務器解析用戶請求,知道了需要調用那些資源文件,再通過相應的這些資源文件處理用戶請求和參數,並調用數據庫等,然後將結果通過web服務器返回給瀏覽器
    • 返回響應結果
      在響應結果中都會有一個HTTP狀態碼,諸如我們熟知的200、404、500等
      狀態碼都是由三位數字和原因短語組成,大致為五類:
      1XX 信息性狀態碼 接收的請求正在處理
      2XX 成功狀態碼 請求正常處理完畢
      3XX 重定向狀態碼 需要附加操作以完成請求
      4XX 客戶端錯誤狀態碼 服務器也無法處理的請求
      5XX 服務器錯誤狀態碼 服務器請求處理出錯
    • 關閉TCP連接
      為了避免服務器與客戶端雙方資源占用和消耗,當雙方沒有請求或者響應傳遞時,任意一方都可以發起關閉請求,與創建TCP連接的三次握手類似,關閉TCP連接需要4次揮手
      簡單比喻為:
      客戶端:哥們,我這邊沒有數據要傳了,咱們關閉連接吧
      服務端:好的,我看看我這邊還有數據不
      服務端:兄弟,我這邊也沒數據要傳給你了,咱們可以關閉連接了
      客戶端:好嘞
    • 瀏覽器解析HTML
    • 瀏覽器布局渲染

從瀏覽器輸入域名到展示頁面都發生了什麽