国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 信息時代 > 公共網(wǎng)關接口(數(shù)據(jù)庫)

公共網(wǎng)關接口(數(shù)據(jù)庫)

時間:2022-12-25 00:30:01 | 來源:信息時代

時間:2022-12-25 00:30:01 來源:信息時代

    公共網(wǎng)關接口 : HTTP Web服務器和CGI應用程序交互的標準接口協(xié)議,規(guī)定了Web服務器調用外部可執(zhí)行程序的一種方法,主要用來規(guī)定Web服務器和CGI應用程序間的數(shù)據(jù)傳遞方法。通過公共網(wǎng)關接口Web客戶端能夠獲得較新的動態(tài)結果。通常情況下Web服務器檢索到的HTML文檔是靜態(tài)的,內容不會改變。而CGI程序可以實時執(zhí)行,它輸出動態(tài)信息,結果能隨輸入而變化。例如,某個數(shù)據(jù)庫接入萬維網(wǎng),允許任何用戶查詢數(shù)據(jù)庫信息,Web服務器執(zhí)行CGI程序并將請求發(fā)送到數(shù)據(jù)庫引擎,然后將最新結果顯示給客戶端。
1993年,CGI首次出現(xiàn)在Rob McCool、John Franks、Ari Luotonen、George Phillips和Tony Sanders等人在www-talk的郵件列表上。當時Rob McCool在美國國家超級計算應用中心(NCSA)工作,他給出CGI規(guī)格草案并在NCSA的HTTP Web服務器上做了參考實現(xiàn)。參考實現(xiàn)中用環(huán)境變量存儲Web服務器執(zhí)行環(huán)境傳入的參數(shù),然后為CGI程序生成獨立的進程。基于CGI協(xié)議,HTTP服務器可以訪問某些早期的信息系統(tǒng)網(wǎng)關。CGI最初作為HTTP服務器和程序間集成網(wǎng)關腳本的協(xié)議。CGI當前版本是1.1。目前有國際組織在試驗基于OMG IDL的面向對象版本。
1. CGI應用的基本結構
作為Web服務器執(zhí)行CGI程序的接口協(xié)議,基于CGI的應用包括Web客戶端、Web服務器、CGI接口和CGI應用程序(見圖1)。Web客戶端可以是各種瀏覽器。支持CGI的Web服務器目前主要指HTTP服務器。


圖1 CGI應用基本架構


CGI接口以平臺無關的方式完成Web服務器和應用程序間HTTP請求發(fā)送和結果消息數(shù)據(jù)的返回。CGI規(guī)范比較簡單,主要規(guī)定了Web服務器和CGI程序間四種數(shù)據(jù)傳遞方法,包括: 環(huán)境變量、命令行、標準輸入和標準輸出。CGI規(guī)定一組傳遞消息的基本環(huán)境變量,如AUTH_TYPE、CONTENT_LENGTH、CONTENT_TYPE等。命令行參數(shù)方式在支持串數(shù)組的操作系統(tǒng)上有效,保存在程序的數(shù)組參數(shù)argv中。當客戶端請求有附加數(shù)據(jù)時,也可以使用“標準輸入”文件描述字來傳遞參數(shù)。最后一種是指CGI程序通過“標準輸出”文件描述字向服務器發(fā)送結果數(shù)據(jù)。結果數(shù)據(jù)分無解析頭輸出和有解析頭輸出,差別由實現(xiàn)者定義。
CGI程序運行在Web服務器所在的主機,可以用腳本語言或可編譯程序語言完成,如C/C++、FORTRAN、PERL、TCL、Unix Shell、VB、Applescript等語言。CGI程序運行需要設定服務所在位置,運行在特定目錄下(如/cgi-bin),并且要注冊到系統(tǒng)中受Web系統(tǒng)管理員的控制以保證系統(tǒng)安全。CGI程序一般用來完成網(wǎng)頁中表單數(shù)據(jù)的處理、數(shù)據(jù)庫查詢和應用系統(tǒng)集成等工作,而且大多數(shù)CGI應用是處理HTML文檔中的〈FORM〉和〈ISINDEX〉命令。
2. 工作流程
基于CGI規(guī)范,客戶端提交請求并獲得結果的主要處理流程為:
(1) Web服務器接受CGI形式的URL請求,解析并準備數(shù)據(jù)。
(2) Web服務器啟動CGI應用程序,將客戶端發(fā)送的所有數(shù)據(jù)按CGI規(guī)范輸入該程序。
(3) CGI程序處理客戶請求,將執(zhí)行結果以MIME消息的格式返回給服務器。
(4) Web服務器收集CGI程序的輸出,補充必要的各種頭信息后發(fā)送回客戶端。
Web服務器和CGI應用程序進行數(shù)據(jù)傳送時,URL請求中問號后面的部分都是CGI程序的輸入,通過約定的環(huán)境變量傳遞,返回結果一般是即時生成的HTML文件。例如,向www.example.edu.cn的主頁上提交檢查用戶id的請求,URL是“http://www.example.edu.cn/idcheck?id=ab3j10&tout=10&d omain=2”。問號后面的串(“id=ab3j10&tout=10&domain=2”)作為CGI程序的輸入表示“在序號為2的域中檢查是否存在id為ab3j10的用戶,超時限制為10秒?!倍斎胫械膮?shù)值可以用上述任何一種方式傳遞給CGI程序。
3. CGI特點
CGI具有開放性,避免了HTTP協(xié)議為支持動態(tài)頁面而進行太多擴展。因為擴展HTTP協(xié)議要級聯(lián)改變?yōu)g覽器和Web服務器間的傳輸協(xié)議。通過CGI可以訪問各種數(shù)據(jù)源,數(shù)據(jù)庫僅是其中之一。
CGI存在的主要問題有:
(1)不支持數(shù)據(jù)和通信資源共享。程序需要訪問外部資源就必須打開和關閉資源。
(2)難以建立事務性交互操作。
(3)易產(chǎn)生性能瓶頸。
CGI一般為每個請求生成一個進程來獨立執(zhí)行,因此工作負載很容易超出Web服務器的負荷。對于不同的CGI程序語言,可以考慮不同的優(yōu)化策略。對于腳本語言,一種方法是將解釋器嵌入到Web服務器中,消除重復加載、初始化解釋器的開銷。也可以使用編程加速器,Web腳本只在首次調用時編譯,緩存編譯碼。再次調用相同腳本時,直接使用編譯碼。如果腳本發(fā)生修改,緩存會被清空,新的腳本替代舊的。
還有一種方法就是使用C語言或類似的可編譯語言實現(xiàn)CGI程序,它們可以快速啟動和終止,降低系統(tǒng)負載。同時具有執(zhí)行速度快、安全性高等特點。

74
73
25
news

版權所有? 億企邦 1997-2022 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉