從瀏覽器輸入域名到展示頁面都發生了什麽
阿新 • • 發佈:2018-03-21
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
- 瀏覽器布局渲染
從瀏覽器輸入域名到展示頁面都發生了什麽