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