公共網關接口

公共網關接口

CGI全稱是“公共網關接口”(Common Gateway Interface),HTTP伺服器與你的或其它機器上的程式進行“交談”的一種工具,其程式須運行在網路伺服器上。

基本介紹

  • 中文名:公共網關接口
  • 外文名:Common Gateway Interface
  • 簡稱:CGI
  • 運行:在網路伺服器
接口介紹,功能,運行環境,處理步驟,伺服器配置,編寫語言,環境變數列表,使用CGI,補充,

接口介紹

即Common Gateway Interface,它提供一個電腦程式同HTTP協定或者WWW服務的接口,也就是人機互動接口;有了它,伺服器可以提供互動式的站點以代替過去靜態的文本和圖象。CGI通常使用PERL、C/C++、DELPHI等進行編寫。
Common Gate Interface簡稱CGI。在物理上,CGI是一段程式,它運行在Server上,提供同客戶端 Html頁面的接口。這句話可理解為:個人主頁上大部分都有一個留言本。留言本的工作是這樣的,先由用戶在客戶端輸入一些信息,如名字之類的東西。接著用戶按一下“留言”,瀏覽器把這些信息傳送到伺服器的CGI目錄下特定的CGI程式中,於是CGI程式在伺服器上按照預定的方法進行處理。在本例中就是把用戶提交的信息存入指定的檔案中。然後CGI程式給客戶端傳送一個信息,表示請求的任務已經結束。此時用戶在瀏覽器里將看到“留言結束”的字樣。整個過程結束。
電影中的CGI技術指computer generated image電腦生成的畫面

功能

絕大多數的CGI程式被用來解釋處理來自表單的輸入信息,並在伺服器產生相應的處理,或將相應的信息反饋給瀏覽器。CGI程式使網頁具有互動功能。

運行環境

CGI程式最初在UNⅨ作業系統上CERN或NCSA格式的伺服器上運行。
在其它作業系統(如:windows NT及windows95等)的伺服器上也廣泛地使用CGI程式,同時它也適用於各種類型機器。

處理步驟

⑴通過Internet把用戶請求送到伺服器。
⑵伺服器接收用戶請求並交給CGI程式處理。
⑶CGI程式把處理結果傳送給伺服器。
⑷伺服器把結果送回到用戶。

伺服器配置

概況
CGI程式不是放在伺服器上就能順利運行,如果要想使其在伺服器上順利的運行並準確的處理用戶的請求,則須對所使用的伺服器進行必要的設定。
配置:根據所使用的伺服器類型以及它的設定把CGI程式放在某一特定的目錄中或使其帶有特定的擴展名。
CREN格式伺服器的配置
編輯CREN格式伺服器的配置檔案(通常為/etc/httpd.conf)
在檔案中加入:Exec cgi-bin/*/home/www/cgi-bin/*.exec命令中出現的第一個參數cgi-bin/*指出了在URL中出現的目錄名字,並表示它在系統主機後的第一個目錄中出現,再如:在命令中的第二個參數表示CGI程式目錄放在系統中的真實路徑。
CGI目錄除了可以點網路檔案放在同一目錄中,也可以放在系統的其它目錄中,但必須保證在你的系統中也具有同樣的目錄。在對伺服器完成設定後,須重新啟動伺服器(除非HTTP伺服器是用inetd啟動的)。
NCSA格式伺服器的配置
NCSA格式伺服器上有兩種方法進行設定:
①在srm.conf檔案(通常在conf目錄下)中加入:Script Alias/cgi-bin/cgi-bin/
Script Alias命令指出某一目錄下的檔案是可執行程式,且這個命令是用來執行這些程式的;此命令的兩個參數與CERN格式伺服器中的Exec命令的參數的含意一樣。
②在srm.conf檔案加入:Add type application/x-httpd-cgi.cgi
此命令表示在伺服器上增加了一種新的檔案類型,其後第一個參數為CGI程式的MIME類型,第二個參數是檔案的擴展名,表示以這一擴展名為擴展名的檔案是CGI程式。
在用上述方法之一設定伺服器後,都得重新啟動伺服器(除非HTTP伺服器是用inetd啟動的)。

編寫語言

CGI可以用任何一種語言編寫,只要這種語言具有標準輸入、輸出和環境變數。對初學者來說,最好選用易於歸檔和能有效表示大量數據結構的語言,例如linux/unix環境中:
· Perl (Practical Extraction and Report Language)
· shell(Bourne shell等)或者Tcl (Tool Command Language)
·PHP(Hypertext Preprocessor)
Windows環境中:
· C和C++
由於Internet上大部分伺服器使用的是linux/unix作業系統,且幾乎任一linux/unix作業系統中都有Shell,因而很方便用Shell編寫CGI。
最終Perl由於其跨作業系統、易於修改的特性成為了CGI的主流編寫語言,以至於一般的“cgi程式”就是Perl程式。

環境變數列表

SERVER-NAME:運行CGI序為機器名或IP位址
SEUVER-INTERFACE:WWW伺服器的類型,如:CERN型或NCSA型。
SERVER-PROTOCOL:通信協定,應當是HTTP/1.0。
SERVER-PORT:TCP連線埠,一般說來web連線埠是80。
HTTP-ACCEPT:HTTP定義的瀏覽器能夠接受的數據類型。
HTTP-REFERER:傳送表單的檔案URL。(並非所有的瀏覽器都傳送這一變數)
HTTP-USER-AGENT:傳送表單的瀏覽器的有關信息。
GETWAY-INTERFACE:CGI程式的版本,在UNⅨ下為 CGI/1.1。
PATH-TRANSLATED:PATH-INFO中包含的實際路徑名。
PATH-INFO:瀏覽器用GET方式傳送數據時的附加路徑。
SCRIPT-NAME:CGI程式的路徑名。
QUERY-STRING:表單輸入的數據,URL中間號後的內容。
REMOTE-NOST:傳送程式的主機名,不能確定該值。
REMOTE-ADDR:傳送程式的機器的IP位址
REMOTE-USBR:傳送程式的人名。
CONTENT-TYPE:POST傳送,一般為applioation/xwww-form-urlencoded。
CONTENT-LENGTH:POST方法輸入的數據的位元組數。

使用CGI

CGI可以為我們提供許多HTML無法做到的功能。比如 a.一個記數器 b.顧客信息表格的提交以及統計 c.搜尋程d.WEB資料庫,用Html是沒有辦法記住客戶的任何信息的,就算用戶願意讓你知道。用Html也是無法把信息記錄到某一個特定檔案里的。要把客戶段的信息記錄在伺服器的硬碟上,就要用到CGI。這是CGI最重要的作用,它補充了Html的不足。是的,僅僅是補充,不是替代。

補充

CGI(Computer Generation Image)三次元CG
CGI(Computer Graphics Interface)計算機圖形接口
發動機CGI技術是一種賓士公司開發的缸內直噴技術。供油動作已完全獨立於進門與活塞系統之外,ECU也因而擁有更多的主導權。超乎傳統噴射理論的稀薄燃燒與更多元的混合比便得以實現。在穩定行進或低負載狀態下,採用缸內直噴設計的發動機得以進入Ultra lean(精實)模式。在此設定下,發動機於進氣行程時只能吸進空氣,至於噴油嘴則在壓縮行程才供給燃料,以達到節約的效果。根據實際測試,其最高能達到1:65的油、氣比例,除了節能表現相當驚人,整體動力曲線也能夠維持相當高的平順度。然而本模式由於會產生相當大量的NOx(硫化物)與高溫,所幸由於技術與材料科學的突破,也已得到了解決。
CGI:Common Gateway Interface
CGI代表Common Gateway Interface(通用網關界面),它使在網路伺服器下運行外部分應用程式(或網關)成為可能。CGI-BIN 目錄是存放CGI腳本的地方。這些腳本使WWW伺服器和瀏覽器能運行外部程式,而無需啟動另一個原因程式。
它是運行在Web伺服器上的一個程式,並由來自於瀏覽者的輸人觸發。CGI是在HTTP伺服器下運行外部程式(或網關)的一個接口,它能讓網路用戶訪問遠程系統上的使用類型程式,就好像他們在實際使用那些遠程計算機一樣。
CGI能夠讓瀏覽者與伺服器進行互動,如果你曾經遇到過在網路上填表或者進行搜尋,就很有可能就是用的CGI。
儘管CGI易於使用,但是當大批人同時使用一個CGI應用程式是會反應較慢,網路伺服器 速度也會受到很大 影響。CGI應用程式的優點是可以獨立運行。
CGI應用程式可以由大多數的程式語言編寫,如Perl(Practical Extraction and Report Language)、C\C++、Java 和Visual Basic等。不過對於那些沒有太多編程經驗的網頁製作人來說,實在是一個不小的難題。
CGI應用程式的工作原理是這樣的:
⒈瀏覽器通過HTML表單或超連結請求指上一個CGI應用程式的URL。
⒉伺服器收發到請求。
⒊伺服器執行指定所CGI應用程式。
⒋CGI應用程式執行所需要的操作,通常是基於瀏覽者輸人的內容。
⒌CGI應用程式把結果格式化為網路伺服器和瀏覽器能夠理解的文檔(通常是HTML網頁)。
⒍網路伺服器把結果返回到瀏覽器中。
有關CGI應用程式要注意的是:
CGI應用程式運行在瀏覽器可以請求的伺服器系統上,執行時需要使用伺服器CPU時間和記憶體。如果有成千上萬的這種程式會同時運行,那會對伺服器系統提出極高的要求。你要慎重考慮這個問題,以防止伺服器系統崩潰。
不完善的CGI應用程式可能成為別人非法進人伺服器系統的通道,有可能導致重要的資料被刪除或外泄。
CGI應用程式主要的用途有以下幾種:
根據瀏覽者填寫的HTML表單傳送定製的答覆。
創建可單擊的圖像縮小圖。
創建一個瀏覽者可以搜尋內容的資料庫。
提供伺服器與資料庫的接口,並把結果轉換成HTML文檔。
製作動態HTML文擋。
如果一個CGI腳本可以在每台計算機上做同樣的事情;編寫腳本就會變的很容易。不幸的是,CGI腳本依賴於伺服器的作業系統,因此,對於非UNⅨ伺服器來說,Prl(UNⅨ下編寫腳本的一個常用工具)腳本毫無用處。所以,你必須定製安裝你的CGI腳本。
大多數伺服器都提供CGI-BIN目錄,但是這還不夠。因為你應該擁有自己的CGI-BIN。這樣,你就能運行自己的腳本(而不是讓自己的系統去適應已存在於系統上的腳本)。因此,你的提供商應安裝CGI-BIN,且能夠幫助你編寫腳本
二、ASP:Active Server Pages
ASP,活動伺服器頁面,就是一個編程環境,在其中,可以混合使用HTML、腳本語言以及組件來創建伺服器端功能強大的Internet應用程式。如果你以前創建過一個站點,其中混合了HTML、腳本語言以及組件,你就可以在其中加入ASP程式代碼。通過在HTML頁面中加入腳本命令,你可以創建一個HTML用戶界面,並且,還可以通過使用組件包含一些商業邏輯規則。組件可以被腳本程式調用,也可以由其他的組件調用。
ASP的工作原理:
當在Web站點中融入ASP功能後,將發生以下事情:
1、用戶調出站點內容,默認頁面的擴展名是.asp
2、瀏覽器從伺服器上請求ASP檔案。
3、伺服器端腳本開始運行ASP。
4、ASP檔案按照從上到下的順序開始處理,執行腳本命令,執行HTML頁面內容。
5、頁面信息傳送到瀏覽器。
因為腳本是在伺服器端運行的,所以Web伺服器完成所有處理後,將標準的HTML頁面送往瀏覽器。這意味著,ASP只能在可以支持的伺服器上運行。讓腳本駐留在伺服器端的另外一個益處是:用戶不可能看到原始腳本程式的代碼,用戶看到的,僅僅是最終產生的HTML內容
三、PHP:Personal Home Page
PHP 是一種伺服器端的,嵌入HTML的腳本語言。PHP區別其他像客戶端Javascript的地方是它的代碼在伺服器端執行.PHP能做什麼?
最低水平,PHP可以做任何其他CGI程式所能做的事,例如收集表格數據,生成動態頁面內容,或者收發cookies.可能最強大,最有意義的特性是PHP支持大範圍的資料庫.書寫一個支持資料庫的Web 頁面是難以置信的簡單.
下面是當前支持的資料庫:
Adabas D InterBase Solid
dBase mSQL Sybase
Empress MySQL Velocis
FilePro Oracle Unix dbm
Informix PostgreSQL
PHP通過協定也支持與其他服務的"交談",像IMAP,SNMP,NNTP,POP3,甚至是 HTTP. 你也可以打開晦澀的 網路接口和其他協定互動.
PHP的簡要歷史
1994年秋季,Rasmus Lerdorf 開始構思 PHP. 早期的非發行版本被用在他的主頁上,以追蹤誰在看他的線上簡歷. 1995年年初第一版本出台,當時PHP只被認為是個人主頁開發工具.它由一個非常單純的只能理解很少數特殊宏的分析引擎和 一些用在主頁後端通用的工具組成.如留言簿,計數器和其他一些東西.這個分析器在1995年年中被重寫並被命名為 PHP/FI 第二版. FI來自 Rasmus 寫的另外一個包,用於解釋 html 形式的數據.他結合了個人主頁工具腳本和形式解析器,並加 上mSQL支持.這樣就產生 PHP/FI 了. PHP/FI以令人驚奇的步調成長,人們開始把自己的代碼貢獻給它.
很難給出它的硬統計表,但可以估計在1996年末,整個世界至少有15,000個網站在用PHP/FI.到1997年年中,這個 數字已經超過50,000了. 而在此時PHP的發展也發生了變化.由Rasmus自己偏愛的和幾個人開發的項目變成一個更有組織的團 體成就.Zeev Suraski和Andi Gutmans重寫了解析器.這個新的解析器成為PHP版本3的基礎.許多有用的代碼從PHP/FI 繼承到PHP3,並且很多是完全重寫的.
1999年年中,不管是PHP/FI或PHP3與很多商業產品捆綁在一塊,例如C2級強度的Web伺服器和紅帽子Linux. 根據NetCraft提供的數據推斷,保守估計全世界套用PHP的網站已超過150,000個.由此看來,它比在網際網路上運行Netscape 的旗艦企業伺服器的站點還多.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
全球小區識別碼CGI(Cell Global Identitier)
① 全球小區識別碼(CGI)是用來識別一個小區(基站/一個扇形小區)所覆蓋的區域
② CGI是在LAI的基礎上再加小區識別碼(CI)構成的
③ 其結構是
MCC+MNC+LAC+CI
MCC:移動國家碼
LAC:位置區號碼
CI:小區標識碼
其中MCC\MNC\LAC為位置區標識(LAI)
其中CI為2Byte的BCD碼,由各MSC自定

相關詞條

熱門詞條

聯絡我們