1. 程式人生 > >WEB客戶端程式設計與伺服器端程式設計

WEB客戶端程式設計與伺服器端程式設計

一、HTTP協議事務處理過程: (1)建立連線。HTTP協議是一種無狀態協議,對於每一次請求都要求建立一個新的連線。 (2)傳送請求。客戶向伺服器傳送一個請求,請求某種型別的服務。 (3)提供服務。伺服器為這個HTTP請求提供服務,即開發人員編寫一個Servlet模組來處理這個HTTP請求。 (4)傳送響應。伺服器請求處理完以後,將處理結果換回給客戶。 (5)關閉連線。客戶的請求、伺服器的響應處理完後,關閉連線。 當使用這種協議的時候,所有的請求都是為搜尋某一個特定的Web網頁而發出的。它不知道現在的請求是第一次發出還是已經多次發出,也不知道這個請求的傳送來源。當用戶請求一個Web網頁的時候,瀏覽器會與相關的 Web伺服器相連線,檢索到這個頁面之後,就會把這個連線斷開。 二、客戶端程式設計 (1)原理: 客戶端程式設計是採用下載到瀏覽器上的程式來完成所有的有關動態服務的工作。通常的情況是程式設計師把客戶端程式碼編寫到HTML檔案中,當用戶提出對這個網頁的請求時,這些客戶端程式碼(即可以實現動態內容的程式)和HTML檔案的程式碼一起以響應的方式返回給提出請求的瀏覽器。由於所有的程式碼(包括程式和HTML標記等)都被瀏覽器接收,所以這些程式的執行是由瀏覽器來實現的。常見的客戶端程式設計技術有JavaScript、JScripts、VBScript和Java applet等。 (2)優點: 在動態網頁剛剛出現的時候,多數是使用客戶端程式設計的方法來實現網頁的動態服務,因為這樣做可以減少伺服器的負擔,充分利用客戶端機器的資源。 (3)缺點: a)由於所有的程式碼都要下載到客戶端來執行,所以相對而言下載的時間就會增加,尤其當程式的程式碼量很大的時候,下載時間的延長會十分明顯。 b)由於所有的客戶端程式碼都是由瀏覽器來執行的,所以,在程式編制的過程中,需要針對不同的瀏覽器進行測試,以保證程式碼的正確執行。因為現在流行的瀏覽器很多,一個程式能在IE上正確執行,但是在Netscape Navigator上就不一定可以正確執行。這為程式的快速編制設定了很大的障礙。 c)如果需要使用伺服器端的資源(例如資料庫中的資料),那麼採用客戶端程式設計就無法實現。 d)採用客戶端程式設計無法保證程式碼的安全,因為所有可以訪問到這個網頁的使用者都可以採用瀏覽器的“檢視原始檔”命令來看到網頁的所有程式碼(包括HTML程式碼和客戶端程式)。 由於客戶端程式設計有這麼多的缺點,而現在的伺服器的硬體速度又越來越快,相應可以使用的資源也就越來越多,使得客戶端程式設計可以節省伺服器端資源的優勢已經大大喪失,所以伺服器端程式設計已經漸漸成為動態網頁程式設計的主流。 三、伺服器端程式設計原理: 程式設計師編寫的程式碼被儲存在伺服器上,當用戶對某個動態網頁提出HTTP請求的時候,這個請求所要訪問的網頁的程式碼都在伺服器端執行完成,並把執行結果以HTML的形式傳回瀏覽器。這樣,由於瀏覽器接收到的只是程式執行的結果,所以上面提到的所有的問題都可以迎刃而解。常見的伺服器端程式設計技術有:CGI、PHP、ASP、JSP和ASP.NET等。