百科解釋
1. 定義: CGI全稱是“公共網(wǎng)關(guān)接口”(Common Gateway Interface),HTTP服務(wù)器與你的或其它機(jī)器上的程序進(jìn)行“交談”的一種工具,其程序須運(yùn)行在網(wǎng)絡(luò)服務(wù)器上。 Common Gate Interface聽起來讓人有些專業(yè), 我們就管它叫CGI好了。在物理上,CGI是一段程序,它運(yùn)行在Server上,提供同客戶段 Html頁(yè)面的接口。這樣說大概還不好理解。那么我們看一個(gè)實(shí)際例子: 現(xiàn)在的個(gè)人主頁(yè)上大部分都有一個(gè)留言本。留言本的工作是這樣的:先由用戶在客戶段輸入一些信息,如名字之類的東西。接著用戶按一下“留言”(到目前為止工作都在客戶端),瀏覽器把這些信息傳送到服務(wù)器的CGI目錄下特定的cgi程序中,于是cgi程序在服務(wù)器上按照預(yù)定的方法進(jìn)行處理。在本例中就是把用戶提交的信息存入指定的文件中。然后cgi程序給客戶端發(fā)送一個(gè)信息,表示請(qǐng)求的任務(wù)已經(jīng)結(jié)束。此時(shí)用戶在瀏覽器里將看到“留言結(jié)束”的字樣。整個(gè)過程結(jié)束。 2. 功能: 絕大多數(shù)的CGI程序被用來解釋處理來自表單的輸入信息,并在服務(wù)器產(chǎn)生相應(yīng)的處理,或?qū)⑾鄳?yīng)的信息反饋給瀏覽器。CGI程序使網(wǎng)頁(yè)具有交互功能。 3. 運(yùn)行環(huán)境: CGI程序最初在UNIX操作系統(tǒng)上CERN或NCSA格式的服務(wù)器上運(yùn)行。 在其它操作系統(tǒng)(如:windows NT及windows95等)的服務(wù)器上也廣泛地使用CGI程序,同時(shí)它也適用于各種類型機(jī)器。 4. CGI處理步驟: ⑴通過Internet把用戶請(qǐng)求送到服務(wù)器。 ⑵服務(wù)器接收用戶請(qǐng)求并交給CGI程序處理。 ⑶CGI程序把處理結(jié)果傳送給服務(wù)器。 ⑷服務(wù)器把結(jié)果送回到用戶。 5. CGI服務(wù)器配置: CGI程序不是放在服務(wù)器上就能順利運(yùn)行,如果要想使其在服務(wù)器上順利的運(yùn)行并準(zhǔn)確的處理用戶的請(qǐng)求,則須對(duì)所使用的服務(wù)器進(jìn)行必要的設(shè)置。 配置:根據(jù)所使用的服務(wù)器類型以及它的設(shè)置把CGI程序放在某一特定的目錄中或使其帶有特定的擴(kuò)展名。 ⑴CREN格式服務(wù)器的配置: 編輯CREN格式服務(wù)器的配置文件(通常為/etc/httpd.conf) 在文件中加入:Exec cgi-bin/*/home/www/cgi-bin/*.exec命令中出現(xiàn)的第一個(gè)參數(shù)cgi-bin/*指出了在URL中出現(xiàn)的目錄名字,并表示它出現(xiàn)在系統(tǒng)主機(jī)后的第一個(gè)目錄中,如:http://edgar.stern.nyn.edu/cgi-bin/ 命令中的第二個(gè)參數(shù)表示CGI程序目錄放在系統(tǒng)中的真實(shí)路徑。 CGI目錄除了可以點(diǎn)網(wǎng)絡(luò)文件放在同一目錄中,也可以放在系統(tǒng)的其它目錄中,但必須保證在你的系統(tǒng)中也具有同樣的目錄。在對(duì)服務(wù)器完成設(shè)置后,須重新啟動(dòng)服務(wù)器(除非HTTP服務(wù)器是用inetd啟動(dòng)的)。 ⑵NCSA格式服務(wù)器的配置 在NCSA格式服務(wù)器上有兩種方法進(jìn)行設(shè)置: ①在srm.conf文件(通常在conf目錄下)中加入:s cript Alias/cgi-bin/cgi-bin/ s cript Alias命令指出某一目錄下的文件是可執(zhí)行程序,且這個(gè)命令是用來執(zhí)行這些程序的;此命令的兩個(gè)參數(shù)與CERN格式服務(wù)器中的Exec命令的參數(shù)的含意一樣。 ②在srm.conf文件加入:Add type application/x-httpd-cgi.cgi 此命令表示在服務(wù)器上增加了一種新的文件類型,其后第一個(gè)參數(shù)為CGI程序的MIME類型,第二個(gè)參數(shù)是文件的擴(kuò)展名,表示以這一擴(kuò)展名為擴(kuò)展名的文件是CGI程序。 在用上述方法之一設(shè)置服務(wù)器后,都得重新啟動(dòng)服務(wù)器(除非HTTP服務(wù)器是用inetd啟動(dòng)的)。 6. CGI的編寫語(yǔ)言 CGI可以用任何一種語(yǔ)言編寫,只要這種語(yǔ)言具有標(biāo)準(zhǔn)輸入、輸出和環(huán)境變量。對(duì)初學(xué)者來說,最好選用易于歸檔和能有效表示大量數(shù)據(jù)結(jié)構(gòu)的語(yǔ)言,例如UNIX環(huán)境中: · Perl (Practical Extraction and Reporting Language) · Bourne Shed或者Tcl (Tool Command Language) Windows環(huán)境中: · C和C++ 由于Internet上大部分服務(wù)器使用的是UNIX操作系統(tǒng),且?guī)缀跞我籙NIX操作系統(tǒng)中都有Bourne Shell,因而后面講述的例子中大部分是用Bourne Shell編寫的。 最終Perl由于其跨操作系統(tǒng)、易于修改的特性成為了CGI的主流編寫語(yǔ)言,以至于一般的“cgi程序”就是Perl程序。 7. CGI環(huán)境變量列表 SERVER-NAME:運(yùn)行CGI序?yàn)闄C(jī)器名或IP地址。 SEUVER-INTERFACE:WWW服務(wù)器的類型,如:CERN型或NCSA型。 SERVER-PROTOCOL:通信協(xié)議,應(yīng)當(dāng)是HTTP/1.0。 SERVER-PORT:TCP端口,一般說來web端口是80。 HTTP-ACCEPT:HTTP定義的瀏覽器能夠接受的數(shù)據(jù)類型。 HTTP-REFERER: 發(fā)送表單的文件URL。(并非所有的瀏覽器都傳送這一變量) HTTP-USER-AGENT:發(fā)送表單的瀏覽器的有關(guān)信息。 GETWAY-INTERFACE:CGI程序的版本,在UNIX下為 CGI/1.1。 PATH-TRANSLATED: PATH-INFO中包含的實(shí)際路徑名。 PATH-INFO:瀏覽器用GET方式發(fā)送數(shù)據(jù)時(shí)的附加路徑。 s cript-NAME: CGI程序的路徑名。 QUERY-STRING:表單輸入的數(shù)據(jù),URL中間號(hào)后的內(nèi)容。 REMOTE-NOST:發(fā)送程序的主機(jī)名,不能確定該值。 REMOTE-ADDR:發(fā)送程序的機(jī)器的IP地址。 REMOTE-USBR:發(fā)送程序的人名。 CONTENT-TYPE:POST發(fā)送,一般為applioation/xwww-form-urlencoded。 CONTENT-LENGTH:POST方法輸入的數(shù)據(jù)的字節(jié)數(shù)。 8.為什么使用CGI? CGI可以為我們提供許多HTML無法做到的功能。比如 a.一個(gè)記數(shù)器 b.顧客信息表格的提交以及統(tǒng)計(jì) c.搜索程d.WEB數(shù) 據(jù)庫(kù) 用Html是沒有辦法記住客戶的任何信息的,就算用戶愿意讓你知道。用Html也是無法把信息記錄到某一個(gè)特定文件里的。要把客戶段的信息記錄在服務(wù)器的硬盤上,就要用到CGI。 這是CGI最重要的作用,它補(bǔ)充了Html的不足。是的,僅僅是補(bǔ)充,不是替代。 CGI (Cell Global Identity) 全球小區(qū)標(biāo)示 在GSM中,用來標(biāo)示一個(gè)基站子系統(tǒng)或者基站小區(qū)。 格式為 補(bǔ)充: CGI(Computer Generation Image)三次元CG CGI(Computer Graphics Interface)計(jì)算機(jī)圖形接口 CGI (Cell Global Identity)小區(qū)全球識(shí)別碼
移動(dòng)通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助