CGI和Serverlet學習:

18.12.14 :

      CGI與Serverlet比較:以下轉載自https://blog.csdn.net/qq_23217629/article/details/52634319

      CGI(common gateway interface)接口協議,CGI不可移植,爲某一特定平臺編寫的CGI應用只能運行於這一環境中。每一個CGI應用存在於一個由客戶端請求激活的進程中,並且在請求被服務後被卸載。這種模式將引起很高的內存、CPU開銷,而且在同一進程中不能服務多個客戶。

     Serverlet:Servlet對CGI的最主要優勢在於一個Servlet被客戶端發送的第一個請求激活,然後它將繼續運行於後臺,等待以後的請求。每個請求將生成一個新的線程,而不是一個完整的進程。多個客戶能夠在同一個進程中同時得到服務。一般來說,Servlet進程只是在Web Server卸載時被卸載。

Servlet提供了Java應用程序的所有優勢——可移植、穩健、易開發。使用Servlet Tag技術,Servlet能夠生成嵌於靜態HTML頁面中的動態內容。

Servlet對CGI的最主要優勢在於一個Servlet被客戶端發送的第一個請求激活,然後它將繼續運行於後臺,等待以後的請求。每個請求將生成一個新的線程,而不是一個完整的進程。多個客戶能夠在同一個進程中同時得到服務。一般來說,Servlet進程只是在Web Server卸載時被卸載。

     自己理解:CGI對客戶端的請求進行處理分發,功能上和Serverlet相似,但缺點在於創建,銷燬進程,編寫CGI程序需要對參數傳遞知識有了解。而Serverlet在處理業務邏輯上有很大優勢,但在處理前端html時,由於會有很對重複代碼,進而出現JSP的技術,Serverl處理業務邏輯和JSP的前端展示也就是現在大多的web項目的處理方式。。對於CGI的創建銷燬的弊端進而出現了fastCGI,我的理解就是用進程池的模式將CGI的創建銷燬模式改爲租用歸還的模式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章