用戶打開瀏覽器,輸入 baidu.com滋捶,頁面展示百度首頁痛悯。整個過程發(fā)生了什么?
一共完成了7步驟:
1重窟、輸入baidu.com载萌,回車
2、域名解析
瀏覽器首先按以下順序檢查緩存中的DNS記錄,如果存在即返回對應的IP
瀏覽器緩存
系統(tǒng)緩存(hosts文件)
路由器緩存
ISP緩存
如果請求的URL不在緩存中扭仁,本地域名服務器會向根域名服務器發(fā)送一個請求垮衷。如果不存在,轉(zhuǎn)發(fā)給下一級查詢乖坠,順序如下:
根域名服務器
COM頂級域名服務器
baidu.com域名服務器
3搀突、瀏覽器與服務器建立連接
一旦瀏覽器收到正確的IP地址,它將與服務器建立TCP連接熊泵。使用稱為TCP/IP三次握手的過程建立此連接以進行數(shù)據(jù)傳輸仰迁。
4、web瀏覽器發(fā)送http請求
?常見web服務器有:Apache.Nginx顽分、IIS徐许、Lighttpd
? web服務器把訪問需求轉(zhuǎn)到百度公司網(wǎng)站
5、web瀏覽器處理請求并返回http響應
web服務器接收HTTP請求怯邪,由控制層處理邏輯绊寻,從數(shù)據(jù)庫取得模型花墩,視圖層組裝頁面悬秉,返回HTTP響應
6、瀏覽器接收http響應
狀態(tài)碼:
1xx 指示信息–表示請求已接收冰蘑,繼續(xù)處理和泌。
2xx 成功–表示請求已被成功接收、理解祠肥、接受武氓。
3xx 重定向–要完成請求必須進行更進一步的操作。
4xx 客戶端錯誤–請求有語法錯誤或請求無法實現(xiàn)仇箱。
5xx 服務器端錯誤–服務器未能實現(xiàn)合法的請求县恕。
?Html字符串被瀏覽器接收后被一句句讀取解析
解析到link標簽后重新發(fā)送請求獲取css
解析到script標簽后發(fā)送請求獲取js,并執(zhí)行代碼
解析到img標簽后發(fā)送請求獲取圖片資源
7、瀏覽器渲染頁面
瀏覽器根據(jù)Html和css計算得到渲染樹剂桥,繪制到屏幕上js會被執(zhí)行? 百度把網(wǎng)站內(nèi)容返回到用戶忠烛,瀏覽器再把html字符串讀取解析再進行渲染繪制在屏幕上