CGI簡介:
Cgi腳本以前是應用非常廣泛. 現在在Web方面的光輝逐漸被 Asp,Php,Asp.net 等專職的Web腳本所取代.
CGI是Common Gateway Interface(通用網關接口)的簡寫,它是一(yī)個Web服務器主機提供信息服務的标準接口,通過提供這樣一(yī)個标準接口,Web服務器能夠執行應用程序并将它們的輸出,如文字、圖形、聲音等傳遞給一(yī)個Web浏覽器。一(yī)般來說,CGI标準接口的功能就是在超文本文檔與服務器應用程序之間傳遞信息。如果沒有CGI,Web服務器隻能提供靜态文本或者連接到其它服務器。可以說這樣毫不誇張地說,有了CGI,萬維網才變得更爲實用,界面才變得更爲友好,信息服務才變得更爲豐富多彩。
CGI是一(yī)個連接外(wài)部應用程序到信息服務器(比如HTTP或者網絡服務器)的标準。一(yī)個簡單的HTML文檔是無交互後台程序,它是靜态的,也就是說它處于一(yī)個不可變的狀态,即文本文件不可以變化。相反地,CGI程序是可以實時執行地,它可以輸出動态的信息。
舉個例子吧,如果你想把服務器數據 ”挂到”萬維網上,并允許世界各地的人可以訪問它。基本上,就就需要創建一(yī)個CGI程序,它的執行将傳遞信息給數據庫引擎,并且把解雇返回給用戶顯示出來。這是一(yī)個網關的例子。 數據庫例子是一(yī)個簡單的思想,在實際應用過程中(zhōng)更爲複雜(zá)。實際上沒有什麽不能挂到網絡上面的。但是隻有一(yī)件事情你必須記住:不管你的CGI程序是怎樣,一(yī)定不能花太多的時間來處理。否則,用戶就做在奔騰機前面靜靜地等着浏覽器的顯示結果,這勢必傷透了”奔騰的心”。
CGI程序可以用任何的語言來編寫,并且可以在Windows/Linux 系統中(zhōng)執行:C/C++,PERL,Visual Basic 等等 實際 Php,Asp 等 也算是一(yī)鍾Cgi腳本語言.實際上Cgi腳本語言出色的是Perl.
采取什麽的語言依靠你的系統支持什麽語言而定的。如果你使用過一(yī)個編程語言如C,你就會知(zhī)道在運行程序之前必須對程序進行編譯。如果你進入這個目錄,你就會發現一(yī)些CGI程序的源代碼。但是如果你使用其中(zhōng)一(yī)種腳本語言,比如PERL、Asp,腳本就隻需要放(fàng)置在/cgi-bin目錄中(zhōng),因爲沒有相關的源代碼。許多設計人員(yuán)喜歡使用CGI腳本而不使用編程語言,因爲腳本比需要編譯的程序語言更容易調試、修改和維護。
Perl 語言簡介:
Perl是Practical Extraction and Report Language(實用摘錄和報告語言)的簡稱,非常優秀的CGI腳本語言,是由Larry Wall所發展的。其新版本爲5.6.
Perl的設計目标是幫助UNIX用戶完成一(yī)些常見的任務,這些任務對于shell來說過于沉重或對移植性要求過于嚴格。
Perl是按GNU Public License的形式分(fēn)發的,其實質是免費(fèi)的,原先運行于UNIX和類UNIX系統,現在已可以方便地在OS/2,Windows 9x,Windows/NT等系統下(xià)運行。
Perl是解釋運行的,一(yī)般Perl程序的行需注明自己是一(yī)個Perl程序而不是shell程序,所以一(yī)般将下(xià)面一(yī)行語句:
#! /usr/bin/perl
作爲文件的行。
Perl的特性:
"Perl語言在文本處理方面非常突出,它把不同的内容聯成一(yī)個整體(tǐ)。對于這種腳本語言來說所有的那些不同的元素,看起來都是一(yī)樣的。”——John Ousterhout,Tcl腳本語言的作者
Perl即“Practical Extraction and Report Language”(實用析取報表語言)。是的,比較粗,但是我(wǒ)想那就是你所得到的——如果你打算确信$HUNN NGOUS CORP并且使用它的話(huà)。事實上,Larry Uall< Larry@wall org >(Perl的創立者)在Perl的幫助手冊頁裏提出:“Perl實際上代表的是Pathologically Edectic Rubbish Lister,但不要告訴任何人我(wǒ)這樣說過。”唔,他是Larry,對此我(wǒ)又(yòu)能再說些什麽呢?
Perl已經被廣泛的認爲是“一(yī)種擁有各種語言功能的夢幻腳本語言”、“Unix 中(zhōng)的王牌工(gōng)具”。以及其他的一(yī)些類似的稱呼,這些都是贊譽之辭,Perl被用來寫單行腳本,快速執行程序,大(dà)的規劃項目(Amazon.com的所有評論産品和控制系統,Netscape的内容策劃管理和傳送系統,人類整組基因工(gōng)程的DNA排序以及計劃管理等等)。還有數以百萬計的令我(wǒ)們驚訝的各種各樣的事情的高速程序。Perl還能夠實現許多UNIX的公共系統工(gōng)具的功能(提示:如果你正在學或必須學awk, sed, grep和 tr,我(wǒ)建議你以Perl來代替它們。所有的功能,更快的執行效率,相信你将永遠不會因爲它的性能發展太快而不适應它。)
Perl允許你建立面向對象的程序。它也可以進行網絡操作(例如socket等等),并且有良好的可移植性(一(yī)個寫得好的腳本可以在Linux,BSD,Solaries,Dos,Win9x,NT,MacOS,OS/2, AnugaOS,VMS等操作系統中(zhōng)不需要任何修改的運行),編寫和調試周期很短——由于沒有編譯的要求,你隻需将變化的部分(fēn)寫出,就可以運行腳本。還有數目龐大(dà)的可适用于執行任何一(yī)項任務的模塊(即預建立Perl的例程),Comprehensive Perl Archiue Network (CPAN)就是每一(yī)個Perl程序員(yuán)所能擁有的好的模塊庫之一(yī)。
總之: Perl 實際應用範圍不僅僅是Web腳本程序.實際在應用程序和系統程序開(kāi)發中(zhōng)都被廣泛使用,實際現在Perl在Web方面的應用慢(màn)慢(màn)被Php,Asp,Asp.net等腳本語言取代
一(yī)個簡單的Perl程序
就拿各類書(shū)籍常用顯示"Hello! Welcome!"程序來說吧。下(xià)面是其源程序:
#! /usr/bin/perl
print "你好! 歡迎光臨網絡教室! \n";
這裏的行說明了這是一(yī)個Perl程序,它也是Perl的注釋,注釋是從#開(kāi)始至該行結束的所有文字。
第二行是程序的可執行部分(fēn),這裏隻有一(yī)條print語句,如果你學過C語言,就能很快掌握它。
|