先說(shuō)說(shuō)大概的流程
- 輸入U(xiǎn)RL
- 瀏覽器進(jìn)行域名解析
- 服務(wù)器處理用戶(hù)請(qǐng)求
- 網(wǎng)站處理
- 瀏覽器處理
- 繪制網(wǎng)頁(yè)
對(duì)每一步的具體說(shuō)明
輸入U(xiǎn)RL:
- 什么是URL:URL的全稱(chēng)是Uniform Resource Locator,翻譯過(guò)來(lái)就是統(tǒng)一資源定位符努咐,說(shuō)白了就是網(wǎng)站的網(wǎng)址苦蒿,或者說(shuō)域名。URL包含協(xié)議部分渗稍,是瀏覽器和www萬(wàn)維網(wǎng)之間的溝通方式佩迟,它會(huì)告訴瀏覽器正確在網(wǎng)路上找到資源位置。常見(jiàn)的協(xié)議有http竿屹、https报强、ftp、file等羔沙。其中http是最常見(jiàn)的網(wǎng)絡(luò)傳輸協(xié)議躺涝,而https則是進(jìn)行加密的網(wǎng)絡(luò)傳輸。
瀏覽器進(jìn)行域名解析
- 也就是DNS解析。DNS解析的過(guò)程如下:瀏覽器會(huì)依次從瀏覽器緩存坚嗜、系統(tǒng)緩存夯膀、路由器緩存、IP DNS 緩存中查找是否有緩存的DNS信息苍蔬,若沒(méi)找到目標(biāo)URL對(duì)應(yīng)的IP的話诱建,就會(huì)向根域名DNS服務(wù)器查找目標(biāo)URL的對(duì)應(yīng)IP,根域名服務(wù)器會(huì)向下級(jí)服務(wù)器轉(zhuǎn)送請(qǐng)求碟绑,層層下發(fā)俺猿,直至找到對(duì)應(yīng)IP為止
服務(wù)器處理用戶(hù)請(qǐng)求
- 什么是服務(wù)器?服務(wù)器就是一臺(tái)機(jī)器安裝系統(tǒng)的機(jī)器格仲,每個(gè)服務(wù)器里都安裝有處理請(qǐng)求的應(yīng)用——web server押袍。常見(jiàn)的web server產(chǎn)品有apache、nginx凯肋、IIS或Lighttpd等谊惭。
- web服務(wù)器接收用戶(hù)的Request 交給網(wǎng)站代碼,或者接受請(qǐng)求反向代理到其他 web服務(wù)器
網(wǎng)站處理
- web服務(wù)器接收用戶(hù)的Request 交給網(wǎng)站代碼侮东,然后返回后臺(tái)程序處理產(chǎn)生的結(jié)果作為響應(yīng)圈盔。網(wǎng)站處理實(shí)際上就是這里的后臺(tái)程序處理。后臺(tái)程序處理時(shí)大部分都會(huì)用到MVC框架
- MVC框架:將應(yīng)用程序分成三個(gè)核心部件:模型(model)-- 視圖(view)--控制器(controller)悄雅,它們各自處理自己的任務(wù)驱敲,實(shí)現(xiàn)輸入、處理和輸出的分離宽闲。前端的主要工作就是視圖view部分
- 總結(jié)而言众眨,網(wǎng)站處理這一步是這樣的:首先控制器接收用戶(hù)的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理便锨,然后模型用業(yè)務(wù)邏輯來(lái)處理用戶(hù)的請(qǐng)求并返回?cái)?shù)據(jù)围辙,最后控制器用相應(yīng)的視圖格式化模型返回html字符串給瀏覽器
瀏覽器處理
- HTML字符串被瀏覽器接受后被一句句讀取解析:
解析到link 標(biāo)簽后重新發(fā)送請(qǐng)求獲取css
解析到 script標(biāo)簽后發(fā)送請(qǐng)求獲取 js我碟,并執(zhí)行代碼
解析到img 標(biāo)簽后發(fā)送請(qǐng)求獲取圖片資源
繪制網(wǎng)頁(yè)
瀏覽器根據(jù) HTML 和 CSS 計(jì)算得到渲染樹(shù)(DOM樹(shù)的可視化表示)放案,繪制到屏幕上,js也 會(huì)被執(zhí)行矫俺,最終完成了整個(gè)頁(yè)面的展示
參考:饑人谷_huangyh_max
說(shuō)說(shuō)從URL輸入到頁(yè)面展現(xiàn)的過(guò)程
http://www.reibang.com/p/58e4597f9c7d