CGI圖文詳細教程(1)
發表時間:2023-08-09 來源:明輝站整理相關軟件相關文章人氣:
[摘要]CGI是一個連接外部應用程序到信息服務器(比如HTTP或者網絡服務器)的標準。一個簡單的HTML文檔是無交互后臺程序,它是靜態的,也就是說它處于一個不可變的狀態,即文本文件不可以變化。相反地,CGI...
CGI是一個連接外部應用程序到信息服務器(比如HTTP或者網絡服務器)的標準。一個簡單的HTML文檔是無交互后臺程序,它是靜態的,也就是說它處于一個不可變的狀態,即文本文件不可以變化。相反地,CGI程序是可以實時執行地,它可以輸出動態的信息。
舉個例子吧,如果你想把Unix數據庫”掛到”萬維網上,并允許世界各地的人可以訪問它。基本上,就就需要創建一個CGI程序,它的執行將傳遞信息給數據庫引擎,并且把解雇返回給用戶顯示出來。這是一個網關的例子。
數據庫例子是一個簡單的思想,在實際應用過程中更為復雜。實際上沒有什么不能掛到網絡上面的。但是只有一件事情你必須記住:不管你的CGI程序是怎樣,一定不能花太多的時間來處理。否則,用戶就做在奔騰機前面靜靜地等著瀏覽器的顯示結果,這勢必傷透了”奔騰的心”。
下面講講CGI的特殊要求:
既然CGI程序是可執行的,那基本上就等價于世界任何地方的人可以在你的系統中運行CGI程序,所以這是一種不安全的事情。因此在使用CGI程序的時候,需要一些安全的預防措施。可能,一種有效的方法是將CGI程序放置在一個特殊的目錄中,這樣網絡服務器件只是執行CGI程序而不是將它顯示到瀏覽器中。這個特殊的目錄通常處在網絡管理員直接控制的目錄,這樣就可以阻止普通用戶創建CGI程序。仍然有其它幾種方法可以允許用戶訪問CGI腳本,但是這需要網絡管理員為他進行一些設置。在這一點上,你可能有與網絡管理員聯系以獲得訪問CGI權限的沖動。
如果你有一個NCSA HTTPd服務器分布的版本,你將看到一個目錄/cgi-bin。這個目錄就是上面所提的特殊目錄,它就是放置CGI程序的地方。CGI程序可以用任何的語言來編寫,并且可以在以下的系統中執行:
C/C++
Fortran
PERL
TCL
任何的Unix shell
Visual Basic
AppleScript
采取什么的語言依靠你的系統支持什么語言而定的。如果你使用過一個編程語言如C或者Fortran,你就會知道在運行程序之前必須對程序進行編譯。如果你進入這個目錄,你就會發現一些CGI程序的源代碼。但是如果你使用其中一種腳本語言,比如PERL、TCL或者Unix shell,腳本就只需要放置在/cgi-bin目錄中,因為沒有相關的源代碼。許多設計人員喜歡使用CGI腳本而不使用編程語言,因為腳本比需要編譯的程序語言更容易調試、修改和維護。