前言:當我們在瀏覽器中輸入www.baidu.com痘括,然后到頁面展示完全枝冀,這一過程發(fā)生了什么衅鹿?
第一步.在瀏覽器中輸入URL:www.baidu.com
注:
URL:統(tǒng)一資源定位符;
協(xié)議:http,https(加密的http),file(定位本地的資源)颜启,ftp愕够;
第二步.域名解析
注:
域名:baidu.com 就是域名走贪;
IP:每個處于互聯(lián)網(wǎng)中的設備都有IP地址,形如:192.168.0.1惑芭;127.0.0.1代表本機坠狡;
域名解析的流程:
1.先從瀏覽器緩存中查找 - 瀏覽器會緩存DNS記錄一段時間
2.然后系統(tǒng)緩存 - 從Hosts文件查找是否有該域名和對應IP
3.然后路由器緩存 - 一般路由器也會緩存域名信息
4.然后ISP DNS緩存 - 比如到電信的DNS上查找緩存(服務商)
5.如果都沒有找到,則向根域名服務器查找域名對應IP遂跟,根域名服務器把請求轉發(fā)到下一級逃沿,直到找到IP。
第三步.服務器處理
注:
服務器是一臺安裝系統(tǒng)的機器幻锁,常見的系統(tǒng)如Linux凯亮,windows server 2012,系統(tǒng)里安裝的處理請求的應用叫Web server哄尔。
Web服務器:常見的web服務器有Apache,Nginx,IIS,Lighttpd假消。
web服務器接收用戶的Request交給網(wǎng)站代碼,或者接受請求反向代理到其他web服務器岭接。
第四步.網(wǎng)站處理流程
MVC模型:model富拗,view,controller
在后端處理好請求后會將HTML發(fā)到瀏覽器鸣戴。
第五步.瀏覽器處理
HTML字符串被瀏覽器接受后被一句句讀取解析啃沪,
解析到link標簽后重新發(fā)送請求獲取css,
解析到script標簽后發(fā)送請求獲取js葵擎,并執(zhí)行代碼谅阿,
解析到img標簽后發(fā)送請求獲取圖片資源。
第六步.繪制網(wǎng)頁
瀏覽器根據(jù)HTML和CSS計算得到渲染樹酬滤,繪制到屏幕上签餐,js會被執(zhí)行。
最后網(wǎng)頁就完全顯示出來了盯串。