多媒體

移動(dòng)通信

計(jì)算機(jī)網(wǎng)絡(luò)

  無限網(wǎng)絡(luò)今日始
  羽檄交馳話通信
  計(jì)算機(jī)網(wǎng)絡(luò)的五臟六腑
  嫦娥孤凄與誰鄰
  因特網(wǎng)的游戲規(guī)則
  團(tuán)結(jié)的力量――網(wǎng)絡(luò)互連
  Internet今昔談
  網(wǎng)絡(luò)應(yīng)用萬花筒
  小心駛得萬年船

智能網(wǎng)

光通信

微波通信

衛(wèi)星通信

交換網(wǎng)

接入網(wǎng)

電信管理網(wǎng)

 

 

  
  電信博物館 > 計(jì)算機(jī)網(wǎng)絡(luò) > internet今昔談 > 初探Web技術(shù)


 


認(rèn)識(shí)CGI

  CGI是信息服務(wù)的標(biāo)準(zhǔn)外部應(yīng)用接口。一個(gè)通過Web訪問的簡(jiǎn)單HTML文檔是靜態(tài)的,即文件的內(nèi)容是不變的。而一個(gè)CGI程序則不然,它是實(shí)時(shí)的,所以它輸出的是動(dòng)態(tài)的信息。如果我們想在WWW和數(shù)據(jù)庫之間建立聯(lián)系,使人們可以從全球的任意地點(diǎn)都可以查詢數(shù)據(jù)庫的信息。我們就可以用CGI來完成這一工作:Web服務(wù)器通過CGI程序傳送信息給數(shù)據(jù)庫,從數(shù)據(jù)庫得到返回的數(shù)據(jù),Web服務(wù)器再將數(shù)據(jù)傳給客戶方的瀏覽器。當(dāng)然數(shù)據(jù)庫應(yīng)用只是CGI應(yīng)用的一個(gè)方面。CGI可以支持多種不同的應(yīng)用、只要是按CGI規(guī)范寫的可執(zhí)行的程序都可以是CGI應(yīng)用。所以實(shí)際上對(duì)CGI程序沒有什么限制。

  這是一套程序語言規(guī)則,用于描述WWW服務(wù)器程序與同一臺(tái)機(jī)器上的其他軟件的通訊,以及其他軟件(也就是所謂的CGI程序)向WWW服務(wù)器發(fā)送信息的方法。一個(gè)程序,只要嚴(yán)格按照CGI標(biāo)準(zhǔn)控制輸入和輸出,就可以成為CGI程序。通常,CGI程序是從WWW服務(wù)器上獲取數(shù)據(jù)并對(duì)之進(jìn)行處理(例如將一個(gè)窗體表格的內(nèi)容填寫到電子郵件信息中,或是將一串信息轉(zhuǎn)化為數(shù)據(jù)庫查詢)的小型程序。你經(jīng)?梢钥匆奀GI程序在包含“cgi-bin”的URL中被使用,不過也不總是這樣。

  CGI是Web服務(wù)器運(yùn)行時(shí)外部程序的規(guī)范,按照CGI編寫的程序可以擴(kuò)展服務(wù)器的功能,完成服務(wù)器本身不能完成的工作,外部程序執(zhí)行時(shí)可以生成HTML文檔,并將文檔返回Web服務(wù)器。CGI應(yīng)用程序能夠與瀏覽器進(jìn)行交互作用,還可以通過數(shù)據(jù)庫的API與數(shù)據(jù)庫服務(wù)器等外部數(shù)據(jù)源進(jìn)行通信,如一個(gè)CGI程序可以從數(shù)據(jù)庫服務(wù)器中獲取數(shù)據(jù),然后格式化為HTML文檔后發(fā)送給瀏覽器,也可以將從瀏覽器獲得的數(shù)據(jù)放到數(shù)據(jù)庫中。幾乎所有的服務(wù)器軟件都支持CGI,開發(fā)者可以使用任何一種Web服務(wù)器內(nèi)置語言編寫CGI,其中包括流行的C、C++、VB和Delphi等。

  標(biāo)準(zhǔn)CGI使用命令行參數(shù)或環(huán)境變量來表示服務(wù)器的詳細(xì)請(qǐng)求,服務(wù)器與瀏覽器間的通信采用標(biāo)準(zhǔn)輸入輸出方式。當(dāng)服務(wù)器接收瀏覽器發(fā)來的CGI請(qǐng)求時(shí),服務(wù)器對(duì)該請(qǐng)求進(jìn)行分析,設(shè)置所需的環(huán)境變量或命令參數(shù),然后創(chuàng)建一個(gè)子進(jìn)程啟動(dòng)CGI程序,CGI執(zhí)行完畢后,使用標(biāo)準(zhǔn)輸出將執(zhí)行結(jié)果返回給服務(wù)器。CGI的輸出可以有許多類型,比如HTML文檔、圖象、純文本或聲音等,它還可以輸出指向其他文檔的連接。

  從以上可以看出,CGI程序應(yīng)用是作為一個(gè)獨(dú)立的外部應(yīng)用來運(yùn)行,與服務(wù)器上的其他進(jìn)程競(jìng)爭(zhēng)處理器資源,這將導(dǎo)致運(yùn)行速度減慢。而且,用CGI開發(fā)支持WWW的應(yīng)用也是一個(gè)比較困難的過程。開發(fā)人員不僅要掌握HTML語言,還要掌握低級(jí)編程語言。而在將Web服務(wù)器訪問數(shù)據(jù)庫過程中,連接狀態(tài)的管理也是很重要的。如果沒有狀態(tài)管理,那么瀏覽器的每一次請(qǐng)求,都需要一個(gè)連接的建立與釋放的過程,效率較低。CGI不提供狀態(tài)管理功能。另外,必須用某個(gè)特定數(shù)據(jù)庫服務(wù)器的專用SQL語言來手工編寫數(shù)據(jù)庫接口,其移植性也不好。


[上一頁] [下一頁]

 

 
韩国日本在线看片,国产免费99热精品,国产精品码一区二区,色老久久精品偷偷鲁偷偷鲁