基本的名詞概念:
URL:統(tǒng)一資源定位符。用于定位互聯(lián)網(wǎng)上的資源
協(xié)議:http https ftp file
IP:每個(gè)處于互聯(lián)網(wǎng)的機(jī)器都有一個(gè)IP
127.0.0.1代表本機(jī)的IP
DNS
服務(wù)器:服務(wù)器是一臺(tái)安裝系統(tǒng)的服務(wù)器,常見的系統(tǒng)如 Linux系統(tǒng)里安裝的處理請(qǐng)求的應(yīng)用叫Web server
Web server: 接受用戶的請(qǐng)求,返回給網(wǎng)站的代碼
從URL輸入到頁面展示的過程:
1.在瀏覽器里輸入U(xiǎn)RL
2.域名解析
把域名解析成IP。域名存在的作用就是方便記憶。
域名解析的流程:
(1)在瀏覽器里找緩存:瀏覽器會(huì)緩存DNS一段時(shí)間
(2)在系統(tǒng)緩存里查找:從 Host文件查找是否有該域名對(duì)應(yīng)的IP
(3)在路由器緩存里查找:一般的路由器也會(huì)緩存域名
(4)在ISPDNS緩存里查找
(5)在根域名服務(wù)器查找域名對(duì)應(yīng)的IP
3.服務(wù)器處理
web server接受用戶的請(qǐng)求,并返回代碼
web server 擔(dān)任管控的角色,對(duì)于不同用戶發(fā)送的請(qǐng)求,會(huì)結(jié)合配置文件,把不同請(qǐng)求委托給服務(wù)器上處理對(duì)應(yīng)請(qǐng)求的程序進(jìn)行處理(例如CGI腳本,JSP腳本,servlets,ASP腳本,服務(wù)器端JavaScript,或者一些其它的服務(wù)器端技術(shù)等),然后返回后臺(tái)程序處理產(chǎn)生的結(jié)果作為響應(yīng)。
4.網(wǎng)站處理流程
網(wǎng)站處理,就是實(shí)際后臺(tái)處理的工作。后臺(tái)開發(fā)現(xiàn)在有很多框架,但大部分都還是按照MVC設(shè)計(jì)模式進(jìn)行搭建的。
MVC是一個(gè)設(shè)計(jì)模式,將應(yīng)用程序分成三個(gè)核心部件:模型(model)-- 視圖(view)--控制器(controller),它們各自處理自己的任務(wù),實(shí)現(xiàn)輸入、處理和輸出的分離。
(1)、視圖(view)
視圖是用戶看到并與之交互的界面。這是前端工作的主力部分。
(2)、模型(model)
模型是將實(shí)際開發(fā)中的業(yè)務(wù)規(guī)則和所涉及的數(shù)據(jù)格式模型化,應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。
(3)、控制器(controller)
控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。Controller處于管理角色,從視圖接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后再確定用哪個(gè)視圖來顯示模型處理返回的數(shù)據(jù)。
五、瀏覽器處理
通過后臺(tái)處理返回的html字符串結(jié)果會(huì)被瀏覽器讀取解析,對(duì)應(yīng)就是html頁面加載、解析、渲染的工作。
1、加載
瀏覽器對(duì)一個(gè)html頁面的加載順序是從上而下的,并在加載過程并行進(jìn)行解析渲染處理。在這個(gè)過程中遇到link標(biāo)簽、image標(biāo)簽、script標(biāo)簽時(shí),瀏覽器會(huì)再次向服務(wù)器發(fā)送請(qǐng)求獲取css文件、圖片資源、js文件,并執(zhí)行js代碼,同步進(jìn)行加載解析。
2、解析、渲染
解析的過程,其實(shí)就是生成解析樹,即dom樹。dom樹是由dom元素及屬性節(jié)點(diǎn)組成,加上css解析的樣式對(duì)象和js解析后的動(dòng)作實(shí)現(xiàn)。而渲染,就是將DOM樹進(jìn)行可視化表示。下一步就來到了繪制網(wǎng)頁的工作階段。
六、繪制網(wǎng)頁
瀏覽器通過上面步驟計(jì)算得到渲染樹,是DOM樹的可視化表示,構(gòu)建渲染樹使頁面以正確的順序繪制出來,遵循一定的渲染規(guī)則,經(jīng)過一系列的渲染工作,實(shí)現(xiàn)網(wǎng)站頁面的繪制,由此最終完成了頁面展示。