談談CGI的開發

現在這年頭,各種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定義變量。

 
談談如何高效開發javascript
  一、簡化代碼  采用更爲簡短的寫法,不僅可以減少輸入的字符數,還可以減少文件大小。大部分采用簡單寫法的代碼,執行效率都有輕微提高。  1.1 簡化常用對象定義:  使用 var obj = {}; 代替 var obj = ne...查看完整版>>談談如何高效開發javascript
 
Web應用的執行過程--談談WAD/CGI/ISAPI的區別
摘要:Web應用的執行過程--談談WAD/CGI/ISAPI的區別Web 應用的執行過程 -- 談談 WAD/CGI/ISAPI 的區別 Borland 在 Delphi/C++ Builder 中提供了多種類型的 Web 應用開發,其中最常用的應該是用于調試的 Web App D...查看完整版>>Web應用的執行過程--談談WAD/CGI/ISAPI的區別
 
Web 應用的執行過程 -- 談談 WAD/CGI/ISAPI 的區別
Web 應用的執行過程 -- 談談 WAD/CGI/ISAPI 的區別 Borland 在 Delphi/C++ Builder 中提供了多種類型的 Web 應用開發,其中最常用的應該是用于調試的 Web App Debugger 應用(WAD應用)和在 Windows/IIS 平台下運...查看完整版>>Web 應用的執行過程 -- 談談 WAD/CGI/ISAPI 的區別
 
CGI技術及其開發(一)
發信人: pitts (痛並快樂著), 信區: Delphi 標 題: CGI技術及其開發 發信站: BBS 水木清華站 (Tue Oct 13 10:00:13 1998) 作爲Internet上最主要的信息管理和組織手段,WWW由一系列相應的技術及應用構成,其組成技術包...查看完整版>>CGI技術及其開發(一)
 
CGI技術及其開發(三)
第 二 部 分、 CGI 程 序 設 計 的 概 念 1.0 、 CGI 程 序 的 功 能:     首 先, 什 麽 是 公 共 網 關 接 口( CGI ) 呢? CGI 是 一 個 用 于 定 義 WEB 服 務 器 與 外 部 程 序 之 間 通 信 方 式...查看完整版>>CGI技術及其開發(三)