小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

CGI是什么 搜索了這么多,大致看明白了保留下來。

 herowuking 2015-07-24

CGI是什么

CGICommonGatewayInterface 的簡稱。是一個(gè)用于定Web服務(wù)器與外部程序之間通信方式的標(biāo)準(zhǔn),使得外部程序能生成HTML、圖像或者其他內(nèi)容,而服務(wù)器處理的方式與那些非外部程序生成的HTML、圖像或其他內(nèi)容的處理方式是相同的。因此,CGI程序冊(cè)僅使你能生成表態(tài)內(nèi)容而能生動(dòng)態(tài)內(nèi)容。使用CGI的原因在于它是一個(gè)定義良好并被廣泛支持的標(biāo)準(zhǔn),沒有CGI就不可能實(shí)現(xiàn)動(dòng)態(tài)的Web頁面,除非使用一些服務(wù)器中提供的特殊方法(如今,也有除CGI之外的其他技術(shù)逐漸在成為標(biāo)準(zhǔn))。

 

CGI主要的功能是在WWW環(huán)境下,藉由從客戶端傳遞一些訊息給WWWServer,再由WWWServer去啟動(dòng)所指定的程式碼來完成特定的工作。所以更明確的說,CGI僅是在WWWServer上可執(zhí)行的程式碼,而她的工作就是控制訊息要求而且產(chǎn)生并傳回所需的文件。使用CGI,你的Server可以讀取并顯示在客戶端無法讀取的格式(像是SQLDataBase)。而且可以像閘道(Gateway)一樣,在伺服端和客戶端之間,產(chǎn)生客戶端所需要的訊息。基本上,在此種主從式(Client/Server)的環(huán)境之下,其IPC(InterProcess Communication)的協(xié)定是利用訊息傳遞及記憶體分享(環(huán)境變數(shù))的方式來完成。CGI有其特定的寫法及規(guī)格,必須遵守其原則,方可達(dá)到主從端資訊交流的目的。

 

 

什么是CGI

1. 定義:

CGI(Common Gateway Interface)HTTP服務(wù)器與你的或其它機(jī)器

上的程序進(jìn)行“交談”的一種工具,其程序須運(yùn)行在網(wǎng)絡(luò)服務(wù)器上。

 

2. 功能:

絕大多數(shù)的CGI程序被用來解釋處理杰自表單的輸入信息,并在服

務(wù)器產(chǎn)生相應(yīng)的處理,或?qū)⑾鄳?yīng)的信息反饋給瀏覽器。CGI程序使

網(wǎng)頁具有交互功能。

 

3. 運(yùn)行環(huán)境:

CGI程序在UNIX操作系統(tǒng)上CERNNCSA格式的服務(wù)器上運(yùn)行。

在其它操作系統(tǒng)(如:windows NTwindows95等)的服務(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./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目錄下)中加入:

Script Alias/cgi-bin/cgi-bin/

Script 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)的)。

 

CGI是什么

 

好了,現(xiàn)在我們來說到底什么是CGICommon Gate Intergace聽起來讓人有些專業(yè), 我們就管它叫CGI好了。在物理上,CGI是一段程序,它運(yùn)行在Server上,提供同客戶段 Html頁面的接口。這樣說大概還不好理解。那么我們看一個(gè)實(shí)際例子:現(xiàn)在的個(gè)人主頁上大部分都有一個(gè)留言本。留言本的工作是這樣的:先由用戶在客戶段輸入一些信息,如名字之類的東西。

 

接著用戶按一下“留言”(到目前為止工作都在客戶端),瀏覽器把這些信息傳送到服務(wù)器的CGI 目錄下特定的cgi程序中,于是cgi程序在服務(wù)器上按照預(yù)定的方法進(jìn)行處理。在本例中就是把用戶提交的信息存入指定的文件中。然后cgi程序給客戶端發(fā)送一個(gè)信息,表示請(qǐng)求的任務(wù)已經(jīng)結(jié)束。此時(shí)用戶在瀏覽器里將看到“留言結(jié)束”的字樣。整個(gè)過程結(jié)束。

 

 

既然CGI是一種程序,自然需要用編程語言來寫。你可以用任何一種你熟悉的高級(jí)語言, C,C++,C shellVB。值得特別指出的,有一種叫Perl的語言。其前身是屬于Unix專用的高 級(jí)語言,其具有強(qiáng)大的字符串處理能力而成為現(xiàn)在寫CGI,特別是表單類程序的首選。最近它已經(jīng)有了Window95,和winnt版本。你可以在搜索程序里找到在那里下載它。 VBMs的殺手锏,從目前的情況看,微軟公司正試圖使VB無所不能。自然也包括在Internet 請(qǐng)各位注意,VB開發(fā)的程序只能在windows平臺(tái)上被執(zhí)行,所以它有一定局限。 C Shell,經(jīng)典的語言??上茏龅氖虑椴欢?,而且必須在Unix平臺(tái)下。 C,C++,正真的無所不能。可是在寫CGI的時(shí)候顯得非常難以掌握。特別是缺乏可以靈活使用的字符串處理函數(shù)。對(duì)程序員的要求也比較高,維護(hù)復(fù)雜。

 

 

最后要提醒各位,因?yàn)?span lang="EN-US">CGIServerClinet的接口,所以對(duì)于不同的Server,CGI程序的移值是一個(gè)很復(fù)雜的問題。一般對(duì)于不同的Server,決沒有兩個(gè)可以互相通用的CGI。實(shí)際上 這就是CGI程序最復(fù)雜的地方。

 

cgi:common gate interface ,通用網(wǎng)關(guān)接口。

以前網(wǎng)站上的動(dòng)態(tài)功能都是用CGI實(shí)現(xiàn),而寫CGI的語言有很多,C也行。最流行的是perl。

后來sun公司推出了servlet基本上取代了CGI。

后來又推出了JSP試圖取代servlet

所以呢,如果不想學(xué)深的話,只學(xué)JSP就行(要先學(xué)JAVA/。

否則學(xué)完JSP再學(xué)SERVLET。

CGI就不用了,已基本被淘汰。

與傳統(tǒng)的CGI和許多其他類似CGI的技術(shù)相比,Java Servlet具有更高的效率,更容易使用,功能更強(qiáng)大,具有更好的可移植性,更節(jié)省投資。在未來的技術(shù)發(fā)展過程中,Servlet有可能徹底取代CGI。
  在傳統(tǒng)的CGI中,每個(gè)請(qǐng)求都要啟動(dòng)一個(gè)新的進(jìn)程,如果CGI程序本身的執(zhí)行時(shí)間較短,啟動(dòng)進(jìn)程所需要的開銷很可能反而超過實(shí)際執(zhí)行時(shí)間。而在Servlet中,每個(gè)請(qǐng)求由一個(gè)輕量級(jí)的Java線程處理(而不是重量級(jí)的操作系統(tǒng)進(jìn)程)。
  在傳統(tǒng)CGI中,如果有N個(gè)并發(fā)的對(duì)同一CGI程序的請(qǐng)求,則該CGI程序的代碼在內(nèi)存中重復(fù)裝載了N次;而對(duì)于Servlet,處理請(qǐng)求的是N個(gè)線程,只需要一份Servlet類代碼。在性能優(yōu)化方面,Servlet也比CGI有著更多的選擇。
  * 方便
  Servlet提供了大量的實(shí)用工具例程,例如自動(dòng)地解析和解碼HTML表單數(shù)據(jù)、讀取和設(shè)置HTTP頭、處理Cookie、跟蹤會(huì)話狀態(tài)等。
  * 功能強(qiáng)大
  在Servlet中,許多使用傳統(tǒng)CGI程序很難完成的任務(wù)都可以輕松地完成。例如,Servlet能夠直接和Web服務(wù)器交互,而普通的CGI程序不能。Servlet還能夠在各個(gè)程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫連接池之類的功能很容易實(shí)現(xiàn)。
  * 可移植性好
  Servlet用Java編寫,Servlet API具有完善的標(biāo)準(zhǔn)。因此,為IPlanet Enterprise Server寫的Servlet無需任何實(shí)質(zhì)上的改動(dòng)即可移植到Apache、Microsoft IIS或者WebStar。幾乎所有的主流服務(wù)器都直接或通過插件支持Servlet。
  * 節(jié)省投資
   不僅有許多廉價(jià)甚至免費(fèi)的Web服務(wù)器可供個(gè)人或小規(guī)模網(wǎng)站使用,而且對(duì)于現(xiàn)有的服務(wù)器,如果它不支持Servlet的話,要加上這部分功能也往往是免費(fèi)的(或只需要極少的投資)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多