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