一、靜態(tài)web頁面:
1、在靜態(tài)Web程序中,客戶端使用Web瀏覽器(IE、FireFox等)經(jīng)過網(wǎng)絡(luò)(Network)連接到服務(wù)器上,使用HTTP協(xié)議發(fā)起一個(gè)請求(Request),告訴服務(wù)器我現(xiàn)在需要得到哪個(gè)頁面,所有的請求交給Web服務(wù)器,之后WEB服務(wù)器根據(jù)用戶的需要,從文件系統(tǒng)(存放了所有靜態(tài)頁面的磁盤)取出內(nèi)容。之后通過Web服務(wù)器返回給客戶端,客戶端接收到內(nèi)容之后經(jīng)過瀏覽器渲染解析,得到顯示的效果。
2、為了讓靜態(tài)web頁面顯示更加好看,使用javascript/VBScript/ajax(AJAX即“Asynchronous Javascript And XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。)但是這些特效都是在客戶端上借助于瀏覽器展現(xiàn)給用戶的,所以在服務(wù)器上本身并沒有任何的變化。
3、靜態(tài)web無法連接數(shù)據(jù)庫;
4、靜態(tài)web資源開發(fā)技術(shù):HTML;
5、由于現(xiàn)在的web頁面中,大量使用JS,導(dǎo)致瀏覽器打開頁面,就會占用大量的內(nèi)存,服務(wù)端的壓力是減輕了,但壓力轉(zhuǎn)移到了客戶端。
二、動態(tài)web頁面:
動態(tài)WEB中,程序依然使用客戶端和服務(wù)端,客戶端依然使用瀏覽器(IE、FireFox等),通過網(wǎng)絡(luò)(Network)連接到服務(wù)器上,使用HTTP協(xié)議發(fā)起請求(Request),現(xiàn)在的所有請求都先經(jīng)過一個(gè)WEB Server來處理。
如果客戶端請求的是靜態(tài)資源(*.htm或者是*.htm),則將請求直接轉(zhuǎn)交給WEB服務(wù)器,之后WEB服務(wù)器從文件系統(tǒng)中取出內(nèi)容,發(fā)送回客戶端瀏覽器進(jìn)行解析執(zhí)行。
如果客戶端請求的是動態(tài)資源(*.jsp、*.asp/*.aspx、*.php),則先將請求轉(zhuǎn)交給WEB Container(WEB容器),在WEB Container中連接數(shù)據(jù)庫,從數(shù)據(jù)庫中取出數(shù)據(jù)等一系列操作后動態(tài)拼湊頁面的展示內(nèi)容,拼湊頁面的展示內(nèi)容后,把所有的展示內(nèi)容交給WEB服務(wù)器,之后通過WEB服務(wù)器將內(nèi)容發(fā)送回客戶端瀏覽器進(jìn)行解析執(zhí)行。
再進(jìn)一步深入分析動態(tài)web的訪問過程:瀏覽器訪問web時(shí),看似是直接訪問的jsp頁面,其實(shí)是,最先到達(dá)的地方是服務(wù)器,服務(wù)器創(chuàng)建好req和resp對象后再給jsp頁面使用。在jsp中完成設(shè)置字符集和取得表單參數(shù)后再調(diào)用servlet,完成業(yè)務(wù)處理。然后返回到j(luò)sp,jsp就會生成相應(yīng)的html頁面。該頁面會返回到服務(wù)器,再由服務(wù)器,通過response對象返回給客戶端。
為什么需要web服務(wù)器?
1)不管什么web資源,想被遠(yuǎn)程計(jì)算機(jī)訪問,都必須有一個(gè)與之對應(yīng)的網(wǎng)絡(luò)通信程序,當(dāng)用戶來訪問時(shí),這個(gè)網(wǎng)絡(luò)通信程序讀取web資源數(shù)據(jù),并把數(shù)據(jù)發(fā)送給來訪者。
2)WEB服務(wù)器就是這樣一個(gè)程序,它用于完成底層網(wǎng)絡(luò)通迅,處理http協(xié)議。使用這些服務(wù)器,We應(yīng)用的開發(fā)者只需要關(guān)注web資源怎么編寫,而不需要關(guān)心資源如何發(fā)送到客戶端手中,從而極大的減輕了開發(fā)者的開發(fā)工作量。
常用動態(tài)web資源開發(fā)技術(shù):JSP/Servlet、ASP、PHP等。