English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

CGI是指什麼東西??
CGI能幹麻??

2005-04-30 11:16:17 · 4 個解答 · 發問者 Anonymous in 電腦與網際網路 程式設計

4 個解答

Common GateWay Interface的縮寫,是一種可以利用web client與web server溝通的WWW技術

中文翻譯作:共同閘道介面.
網際網路當中,WEB 伺服器與外部應用程式溝通傳輸的協定,可用Visual Basic, Perl,C/C++,Java ,ASP, php, python等各種語言來撰寫程式。
一般的HTML是靜態的,而CGI可依自己的需求來寫出動態的網頁程式
參考資料
http://www.cc.ncu.edu.tw/~center5/docs/form_and_cgi/sld002.htm

2005-04-30 11:17:09 · answer #1 · answered by Anonymous · 0 0

我也不知啥是CGI說~^^"
結果就找到這個網頁噜!
一起學習ㄅ~


【CGI】 介紹

CGI 是 Common Gateway Interface 的簡稱. 其主要的功能是在 WWW 環境 下, 藉由從使用者端傳遞一些訊息給 WWW 伺服軟體, 再由 WWW 伺服軟體去啟動所指定的程式碼來完成特定的工作. 所以更明確的說, CGI 僅是 在 WWW 主機端上的可執行的程式碼. 基本上, 在此種主從式 (Client/Server)的環境之下, 其 IPC (InterProcess Communication) 的協定是利用訊息傳遞及記憶體分享(環境變數)的方式來完成. CGI 有其特定的寫法及規格, 必須遵守其原則方可達到主從端資訊交流的目的, 這是應該要知道的.

有了 CGI 功能的加入可以使得 WWW 的環境不僅可以有單向的資訊瀏覽, 更可以有雙向的互動. 若說 CGI 的發展是 WWW 能受廣大使用者喜愛的最大原因是不為過的.

一般使用者透過瀏覽器觀賞網頁時, 瀏覽器會和 Web 主機上的 Http server 建立一個連線, 然後 Http server 會到一堆事先做好的 HTML 檔案中, 找出使用者要看的網頁, 回傳給瀏覽器, 讓使用者觀賞. 這種方式, 由於 HTML 檔案是靜態的, 所以使用者看過幾次就沒興趣了.因此就有人想到要透過程式來產生 HTML 內容, 這樣就不會一成不變了, 這就是 CGI的來由.

在觀賞CGI網頁時, 同樣地瀏覽器會和 Web 主機上的 Http server 建立一個連線, 但是接著 Http server 不是去抓檔案, 而是去啟動一個 CGI 程式, 然後將 CGI 程式所產生的內容當成 HTML 傳回給使用者瀏覽器.

應用的相關資料:
1.留言板
2.計數器
3.密碼認證

http://ind.ntou.edu.tw/~dada/cgi/CGIapp.htm

2005-04-30 11:24:21 · answer #2 · answered by 中華健兒最棒! 5 · 0 0

CGI 介紹 一般使用者透過瀏覽器觀賞網頁時, 瀏覽器會和 Web 主機上的 Http server 建立一個連線, 然後 Http server 會到一堆事先做好的 HTML 檔案中, 找出使用者要看的網頁, 回傳給瀏覽器, 讓使用者觀賞. 這種方式, 由於 HTML 檔案是靜態的, 所以使用者看過幾次就沒興趣了.因此就有人想到要透過程式來產生 HTML 內容, 這樣就不會一成不變了, 這就是 CGI的來由. 在觀賞CGI網頁時, 同樣地瀏覽器會和 Web 主機上的 Http server 建立一個連線,  但是接著 Http server 不是去抓檔案, 而是去啟動一個 CGI 程式, 然後將 CGI 程式所產生的內容當成 HTML 傳回給使用者瀏覽器. 說了半天, CGI是什麼呢? 它的全名是 Common Gateway Interface, 規定了 Http server 和 CGI程式之間傳遞參數和結果的方法   CGI 運作架構
圖片參考:http://turtle.ee.ncku.edu.tw/~tung/cgi/cgi.gif
呼叫 CGI程式 一個含有 Form 的網頁, 在 Form 開始的地方都會有如

的標記, 當使用者填入資料到這個 Form 並按下確定送出鍵後, 資料會被傳到 Http server 端, 此時 Http serber 會叫起 Action 所指定的 CGI程式, 然後將使用者輸入的資料傳給這個 CGI程式.   傳資料給 CGI 程式 事實上, 使用者填在 Form 中的資料, 瀏覽器會先將其組合成一個 參數1=參數1內容&參數2=參數2內容&...的參數串, 再傳給 Http server 接著看 Form標記中, Method 的種類 Method=GET 時, Http server 會將參數串設成環境變數 QUERY_STRING, CGI 程式只要將這個環境變數抓出來用即可, 不過由於是透過環境變數在傳遞這個參數串, 所以會有長度上的限制. Method=POST 時, Http server 會將參數串透過標準輸入傳給 CGI   直接呼叫 CGI 程式 除了透過 方式使用 CGI 程式外, 我們也可以用 這種直接呼叫的方式使用 CGI程式, 不一定要透過 Form, 不過這種方式是以 GET 的方式傳參數, 也就是說參數串有長度上的限制   CGI程式的結果 CGI程式在處理完資料後, 再將要傳給使用者看的網頁內容往標準輸出 (就是螢幕啦)送. 這些送往螢幕的資料會被 Http server 所攔截, 並將之這些內容送往使用者的瀏覽器, 接著使用者便看到畫面了 有一點要注意的是, CGI 程式產生的結果, 除了原本的 HTML 內容外, 要先送出 HTTP Header Content-type:text/html 和一行空白以 perl 的 cgi 程式來說, 寫法如下 print "Content-type:text/html\n\n";接下來再 print 真正的 HTML 內容 如果 CGI 程式的結果是要將使用者畫面轉往另外一個 WebPage, 則只需送出 Http Header Location: 網址的 URL和一行空白以 perl 的 cgi 程式來說, 寫法如下 print "Location: 網址的 URL\n\n";CGI 程式的路徑 由於 CGI程式是放在 WebServer 上, 因此我們也是透過 URL 去指明要呼叫的 CGI 程式, 那麼 CGI 程式的 URL名稱與真正在硬碟上的對應關係是如何呢?   URL名稱真正硬碟路徑系統網頁/index.html/usr/local/apache/htdoc/index.html (這個對應關係通常 http server 軟體會有設定檔讓系統管理者可以自由指定, ex:/usr/local/apache/conf/srm.conf)User個人網頁~tung/index.html~tung/public_html/index.html (這個對應關係通常 http server 軟體會有設定檔讓系統管理者可以自由指定)系統CGI 程式/cgi-bin/test.pl/usr/local/apach/cgi-bin/test.pl (這個對應關係通常 http server 軟體會有設定檔讓系統管理者可以自由指定)User個人CGI程式/cgi-bin/cgiwrap/~tung/test.pl~tung/public_html/cgi-bin/test.pl (注意!這裡透過 系統 CGI程式 cgiwrap 來呼叫使用者個人網頁目錄~tung/public_html 的子目錄 cgi-bin 下的 CGI程式 test.pl)CGI程式的屬性 由前面的架構圖我們知道 CGI 程式是由 Http server 所呼叫, Http server 會用 nobody 這個 user 的權限去執行 CGI, 因此 1. CGI 程式本身的權限應該設成 r-xr-xr-x, 也就是 555, 設定指令為 chmod 555 你的CGI程式2.CGI程式所要寫入的目錄或資料檔 owner 應該是 nobody, 設定指令為 chown nobody CGI程式所要寫入的檔案ps: User 的 CGI 程式實際上是由 cgiwrap (suid root) 這個程式所呼叫, cgiwrap 會以 User 帳號的身份去執行 User 的 CGI 程式, 所以 User CGI 程式所要寫入的目錄或資料檔 owner 保持是 user 自己即可

2005-04-30 11:17:56 · answer #3 · answered by Anonymous · 0 0

Common GateWay Interface的縮寫,是一種可以利用web client與web server溝通的WWW技術

中文翻譯作:共同閘道介面.
網際網路當中,WEB 伺服器與外部應用程式溝通傳輸的協定,可用Visual Basic, Perl,C/C++,Java ,ASP, php, python等各種語言來撰寫程式。
一般的HTML是靜態的,而CGI可依自己的需求來寫出動態的網頁程式

2005-04-30 11:17:23 · answer #4 · answered by Wish 3 · 0 0

fedest.com, questions and answers