| 導購 | 订阅 | 在线投稿
分享
 
 
 

談談CGI的開發

來源:互聯網  2008-06-01 01:10:22  評論

現在這年頭,各種web開發技術各領風騷,PHP,ASP,jsp都是比較時髦的,于是人們似乎把CGI淡忘了,其實CGI最受诟病的是它的性能比較差,占用的系統資源比較高。許多程序員因此覺得CGI沒有前途。

實際上,CGI除了傳統的優點如:安全性高,接口標准簡單,易于用不同語言實現外,近些年來出現的如fastcgi和mod_perl等技術已經可以彌補它在速度、資源方面的缺點。

下面以fastcgi技術爲例簡單說明:

傳統CGI技術之所以速度慢,主要是因爲一般 CGI每一次啓動都要啓動一個進程,假如有1000人同時在一個聊天室裏聊天,那麽就會産生1000個進程。對于有後台數據庫的CGI,意味著每次請求都是一次數據庫連接、查詢、斷開的過程。這樣的問題即使用C語言也不能解決,而像perl這樣的解釋語言更增加了啓動解釋程序的負擔。

fastcgi的設計思想就是啓動一個cgi進程以後不退出,一般情況下只要進行一次的操作如數據庫連接、sql語句的預備都可以在啓動時完成,以後再有新的請球,就只要直接查詢,不需要解釋、連接數據庫、産生新進程,由此可以大大提高系統性能。

一個簡單的例子:

#!/bin/perl

Print 「Content-type : text/Html\n\n」;

Print 「I Love yuzi」;

這樣的程序,每一次都要啓動一個進程。

而使用了FCGI模塊以後:

use FCGI;

while(FCGI::accept() >=0 )

{

print "Content-type: text/html\n\n";

print "I Love yuzi」;

}

exit 0;

只有循環內部每次執行

而從cgi轉向fastcgi是很簡單的,只要把啓動部分放在while循環外面,其它部分在while循環裏完成。但是應當注重的是,一般情況我們寫perl CGI程序的時候不注重資源的回收,讓程序結束的時候自動回收,但在fastcgi環境下這就會産生問題,所以要養成use strict的習慣,用my $var定義變量。

現在這年頭,各種web開發技術各領風騷,PHP,ASP,jsp都是比較時髦的,于是人們似乎把CGI淡忘了,其實CGI最受诟病的是它的性能比較差,占用的系統資源比較高。許多程序員因此覺得CGI沒有前途。 實際上,CGI除了傳統的優點如:安全性高,接口標准簡單,易于用不同語言實現外,近些年來出現的如fastcgi和mod_perl等技術已經可以彌補它在速度、資源方面的缺點。 下面以fastcgi技術爲例簡單說明: 傳統CGI技術之所以速度慢,主要是因爲一般 CGI每一次啓動都要啓動一個進程,假如有1000人同時在一個聊天室裏聊天,那麽就會産生1000個進程。對于有後台數據庫的CGI,意味著每次請求都是一次數據庫連接、查詢、斷開的過程。這樣的問題即使用C語言也不能解決,而像perl這樣的解釋語言更增加了啓動解釋程序的負擔。 fastcgi的設計思想就是啓動一個cgi進程以後不退出,一般情況下只要進行一次的操作如數據庫連接、sql語句的預備都可以在啓動時完成,以後再有新的請球,就只要直接查詢,不需要解釋、連接數據庫、産生新進程,由此可以大大提高系統性能。 一個簡單的例子: #!/bin/perl Print 「Content-type : text/Html\n\n」; Print 「I Love yuzi」; 這樣的程序,每一次都要啓動一個進程。 而使用了FCGI模塊以後: use FCGI; while(FCGI::accept() >=0 ) { print "Content-type: text/html\n\n"; print "I Love yuzi」; } exit 0; 只有循環內部每次執行 而從cgi轉向fastcgi是很簡單的,只要把啓動部分放在while循環外面,其它部分在while循環裏完成。但是應當注重的是,一般情況我們寫perl CGI程序的時候不注重資源的回收,讓程序結束的時候自動回收,但在fastcgi環境下這就會産生問題,所以要養成use strict的習慣,用my $var定義變量。
󰈣󰈤
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有