Ⅰ CGI的定義
CGI
1. 定義:
CGI全稱是「公共網關界面」(Common Gateway Interface),HTTP伺服器與你的或其它機器上的程序進行「交談」的一種工具,其程序須運行在網路伺服器上。
2. 功能:
絕大多數的CGI程序被用來解釋處理傑自表單的輸入信息,並在伺服器產生相應的處理,或將相應的信息反饋給瀏覽器。CGI程序使網頁具有交互功能。
3. 運行環境:
CGI程序最初在UNIX操作系統上CERN或NCSA格式的伺服器上運行。
在其它操作系統(如:windows NT及windows95等)的伺服器上也廣泛地使用CGI程序,同時它也適用於各種類型機器。
4. CGI處理步驟:
⑴通過Internet把用戶請求送到伺服器。
⑵伺服器接收用戶請求並交給CGI程序處理。
⑶CGI程序把處理結果傳送給伺服器。
⑷伺服器把結果送回到用戶。
5. CGI伺服器配置:
CGI程序不是放在伺服器上就能順利運行,如果要想使其在伺服器上順利的運行並准確的處理用戶的請求,則須對所使用的伺服器進行必要的設置。
配置:根據所使用的伺服器類型以及它的設置把CGI程序放在某一特定的目錄中或使其帶有特定的擴展名。
⑴CREN格式伺服器的配置:
編輯CREN格式伺服器的配置文件(通常為/etc/httpd.conf)
在文件中加入:Exec cgi-bin/*/home/www/cgi-bin/*.exec命令中出現的第一個參數cgi-bin/*指出了在URL中出現的目錄名字,並表示它出現在系統主機後的第一個目錄中,如:http://edgar.stern.nyn.e/cgi-bin/
命令中的第二個參數表示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啟動的)。
6. CGI的編寫語言
CGI可以用任何一種語言編寫,只要這種語言具有標准輸入、輸出和環境變數。對初學者來說,最好選用易於歸檔和能有效表示大量數據結構的語言,例如UNIX環境中:
· Perl (Practical Extraction and Reporting Language)
· Bourne Shed或者Tcl (Tool Command Language)
Windows環境中:
· C和C++
由於Internet上大部分伺服器使用的是UNIX操作系統,且幾乎任一UNIX操作系統中都有Bourne Shell,因而後面講述的例子中大部分是用Bourne Shell編寫的。
最終Perl由於其跨操作系統、易於修改的特性成為了CGI的主流編寫語言,以至於一般的「cgi程序」就是Perl程序。
7. CGI環境變數列表
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程序的版本,在UNIX下為 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(Common Gateway Interface)公共網關介面,是外部擴展應用程序與 Web 伺服器交互的一個標准介面。伺服器端與客戶端進行交互的常見方式多,CGI 技術就是其中之一。
公共網關介面 CGI 程序是存放在 HTTP 伺服器上,為用戶和HTTP伺服器之外的其他應用程序提供互相「交談」手段的軟體。
(2)網路優化中cgi是什麼意思擴展閱讀:
相關特點:
公共(Common)。無須考慮客戶機和伺服器所運行的操作系統平台,只要二者的網關程序遵循同一數據傳輸協議,即可進行數據交互。
網關(Gateway)。CGI 可被用來作為 HTTP 伺服器與其他第三方應用程序之間的「連接件」或「中件(Middle Ware) "。
介面(Interface)。CGI 使用標准通訊機制,為其它應用程序與 HTTP 伺服器提供數據傳輸介面。用 CGI 可以實現處理表格,資料庫查詢,發送電子郵件或控制伺服器端硬體等許多操作。
CGI 進程是根據 WWW 服務設置的環境變數和傳入參數採取動作並生成相應的響應結果。它返回給 WWW 伺服器的信息則採用協議規定的格式(一般為MIME 規定的格式)。絕大多數 Web 伺服器支持 CGI。
Ⅲ 製作網頁中有CGI,請問CGI是什麼意思
CGI 是 Common Gateway Interface 的縮寫,是伺服器端和用戶溝通的程序, 它可以使你的網頁更生動,網路上很多工具例如搜索引擎、留言板、BBS等都是 CGI 程序
Ⅳ CGI是什麼由哪些組成
CGI 全稱是 Common Gateway Interface. 可以理解為一種網路協議
說到 Common (共同) 和 Interface ( 界面 ), 意思就是一個協議好的 共同界面.
而這個界面的作用就是一個 Gateway ( 閘口 )
這個閘口的兩端分別是 "客戶端" 和 "伺服器" 端.
"客戶端" (Client) 就是 ie, firefox 這些瀏覽器, 也可以是手機的 app
"伺服器" (Server) 就是 web 的主機了.
通過這個閘口,
Client 並不需要知道正在打開的網站是用甚麼 server, 用甚麼語言編寫
而 Server 也不需要理會 Client 用的是 視窗還是 Linux 還是蘋果, 也不用理會用的那個瀏覽器
而協調這種技術的"實現者" 就是 瀏覽器(Browser) 或者相關的 VM ( 例如 App).
Ⅳ CGI是什麼
cgi全稱是「公共網關界面」(common
gateway
interface),http伺服器與你的或其它機器上的程序進行「交談」的一種工具,其程序須運行在網路伺服器上。
功能:
絕大多數的cgi程序被用來解釋處理來自表單的輸入信息,並在伺服器產生相應的處理,或將相應的信息反饋給瀏覽器。cgi程序使網頁具有交互功能。
Ⅵ 請問什麼是CGI
1. 定義:
CGI(Common Gateway Interface)是HTTP伺服器與你的或其它機器
上的程序進行「交談」的一種工具,其程序須運行在網路伺服器上。
2. 功能:
絕大多數的CGI程序被用來解釋處理傑自表單的輸入信息,並在服
務器產生相應的處理,或將相應的信息反饋給瀏覽器。CGI程序使
網頁具有交互功能。
3. 運行環境:
CGI程序在UNIX操作系統上CERN或NCSA格式的伺服器上運行。
在其它操作系統(如:windows NT及windows95等)的伺服器上
也廣泛地使用CGI程序,同時它也適用於各種類型機器。
4. CGI處理步驟:
⑴通過Internet把用戶請求送到伺服器。
⑵伺服器接收用戶請求並交給CGI程序處理。
⑶CGI程序把處理結果傳送給伺服器。
⑷伺服器把結果送回到用戶。
參考:http://www.wendom.net/info/304-1.htm
Ⅶ 關於什麼是什麼是CGI
什麼是CGI
CGI全稱是「公共網關介面」(Common Gateway Interface),HTTP伺服器與你的或其它機器上的程序進行「交談」的一種工具,其程序須運行在網路伺服器上。
CGI可以用任何一種語言編寫,只要這種語言具有標准輸入、輸出和環境變數。如php,perl,tcl等
什麼是FastCGI
FastCGI像是一個常駐(long-live)型的CGI,它可以一直執行著,只要激活後,不會每次都要花費時間去太陽城fork一次(這是CGI最為 人詬病的fork-and-execute 模式)。它還支持分布式的運算, 即 FastCGI 程序可以在網站伺服器以外的主機上執行並且接受來自其它網站伺服器來的請求。
FastCGI是語言無關的、可伸縮架構的CGI開放擴展,其主要行為是將CGI解釋器進程保持在內存中並因此獲得較高的性能。眾所周知,太陽城CGI解釋 器的反復載入是CGI性能低下的主要原因,如果CGI解釋器保持在內存中並接受FastCGI進程管理器調度,則可以提供良好的性能、伸縮性、Fail- Over特性等等。
FastCGI與CGI特點
1、如CGI,FastCGI也具有語言無關性.
2、如CGI, FastCGI在進程中的應用程序,獨立於核心web伺服器運行,提供了一個比API更安全的環境。(APIs把應用程序的代碼與核心的web伺服器鏈接 在一起,這意味著在一個錯誤的API的應用程序可能會損壞其他應用程序或核心伺服器; 惡意的太陽城API的應用程序代碼甚至可以竊取另一個應用程序或核心伺服器的密鑰。)
3、FastCGI技術目前支持語言有:C/C++、Java、Perl、Tcl、Python、SmallTalk、Ruby等。相關模塊在Apache, ISS, Lighttpd等流行的伺服器上也是可用的。
4、如CGI,FastCGI的不依賴於任何Web伺服器的內部架構,因此即使伺服器技術的變化, FastCGI依然穩定不變。
FastCGI的工作原理
1、Web Server啟動時載入FastCGI進程管理器(IIS ISAPI或Apache Mole)
2、FastCGI進程管理器自身初始化,啟動多個CGI解釋器進程(可見多個php-cgi)並等待來自Web Server的連接。
3、當客戶端請求到達Web Server時,FastCGI進程管理器選擇並連接到一個CGI解釋器。Web server將太陽城CGI環境變數和標准輸入發送到FastCGI子進程php-cgi。
4、FastCGI子進程完成處理後將標准輸出和錯誤信息從同一連接返回Web Server。當FastCGI子進程關閉連接時,請求便告處理完成。FastCGI子進程接著等待並處理來自FastCGI進程管理器(運行在Web Server中)的下一個連接。 在CGI模式中,php-cgi在此便退出了。
在上述情況中,你可以想像CGI通常有多慢。每一個Web請求PHP都必須重新解析php.ini、重新載入全部擴展並重初始化太陽城全部數據結構。使用 FastCGI,所有這些都只在進程啟動時發生一次。一個額外的好處是,持續資料庫連接(Persistent database connection)可以工作。
FastCGI的不足
因為是多進程,所以比CGI多線程消耗更多的伺服器內存,PHP-CGI解釋器每進程消耗7至25兆內存,將這個數字乘以50或100就是很大的內存數。
Nginx 0.8.46+PHP 5.2.14(FastCGI)伺服器在3萬並發連接下,開啟的10個Nginx進程消耗150M內存(15M*10=150M),開啟的64個php- cgi進程消耗1280M內存(20M*64=1280M),http://tyangcdh.com加上系統自身消耗的內存,總共消耗不到2GB內存。如果伺服器內存較小,完全可以只開啟25 個php-cgi進程,這樣php-cgi消耗的總內存數才500M。
Ⅷ CGI是什麼
什麼是CGI
1. 定義:
CGI(Common Gateway Interface)是HTTP伺服器與你的或其它機器
上的程序進行「交談」的一種工具,其程序須運行在網路伺服器上。
2. 功能:
絕大多數的CGI程序被用來解釋處理傑自表單的輸入信息,並在服
務器產生相應的處理,或將相應的信息反饋給瀏覽器。CGI程序使
網頁具有交互功能。
3. 運行環境:
CGI程序在UNIX操作系統上CERN或NCSA格式的伺服器上運行。
在其它操作系統(如:windows NT及windows95等)的伺服器上
也廣泛地使用CGI程序,同時它也適用於各種類型機器。
4. CGI處理步驟:
⑴通過Internet把用戶請求送到伺服器。
⑵伺服器接收用戶請求並交給CGI程序處理。
⑶CGI程序把處理結果傳送給伺服器。
⑷伺服器把結果送回到用戶。
5. CGI伺服器配置:
CGI程序不是放在伺服器上就能順利運行,如果要想使其在伺服器
上順利的運行並准確的處理用戶的請求,則須對所使用的伺服器進
行必要的設置。
配置:根據所使用的伺服器類型以及它的設置把CGI程序放在某一
特定的目錄中或使其帶有特定的擴展名。
⑴CREN格式伺服器的配置:
編輯CREN格式伺服器的配置文件通常為/etc/httpd.conf/
在文件中加入:Exec cgi-bin/*/home/www/cgi-bin/*.exec
命令中出現的第一個參數cgi-bin/*指出了在URL中出現的目錄
名字,並表示它出
現在系統主機後的第一個目錄中,如:
http://edgar.stern.nyn.e/cgi-bin/
命令中的第二個參數表示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啟動的)。
什麼是IIS
首先,Internet Information Server的縮寫為(IIS)是一個World Wide Web server。Gopher server和FTP server全部包容在裡面。 IIS意味著你能發布網頁,並且有ASP(Active Server Pages)、JAVA、VBscript產生頁面,有著一些擴展功能。IIS支持一些有趣的東西,象有編輯環境的界面(FRONTPAGE)、有全文檢索功能的(INDEX SERVER)、有多媒體功能的(NET SHOW)
其次,IIS是隨Windows NT Server 4.0一起提供的文件和應用程序伺服器,是在Windows NT Server上建立Internet伺服器的基本組件。它與Windows NT Server完全集成,允許使用Windows NT Server內置的安全性以及NTFS文件系統建立強大靈活的Internet/Intranet站點。
1.IIS的安裝
IIS可以在Windows NT安裝時安裝,也可以安裝完Windows NT後用「控制面板」中的「添加/刪除程序」安裝,安裝路徑為光碟中的:i386\inetsrv\inetstp.exe。安裝過程中要求添加相應的ODBC驅動程序。
2.IIS的管理
IIS通過ISM(Internet Service Manager)進行管理,ISM有兩個版本,一個以普通應用程序的方式運行,一個在Web瀏覽器中運行,二者的差別在於後者不能啟動和停止Internet服務。
ISM(應用程序方式)管理界面:在「查看」菜單中選擇「查看報告」、「伺服器查看」、「服務查看」可以得到三種視圖:
報告視圖 預設的視圖,按字母順序依次顯示所選擇的計算機及其上安裝的服務。通過該視圖可以:連到伺服器並顯示其屬性對話框;啟動、停止或暫停服務;可選擇顯示哪些服務(FTP、WWW、GOPHER)。
伺服器視圖 顯示網路上運行Internet服務的計算機名。打開該計算機可以看到正在運行的Internet服務。雙擊伺服器名可以顯示其屬性對話框。
服務視圖 列出所有的Internet服務。打開服務可以看到哪些計算機運行該服務。雙擊服務下的計算機名,可以打開該計算機上的服務屬性對話框。
3.IIS安全性
IIS的安全性核心依賴於Windows NT Server內置的安全性,IIS自身也內置了安全性。包括加密、驗證以及IIS擴展等。
(1)Windows NT Server安全性:Windows NT提供用戶賬戶安全性、NTFS安全性。
①用戶賬戶安全性:Windows NT要求用戶提供有效賬戶以及口令才能訪問Windows NT。IIS安裝時創建Internet Guest 賬戶,預設情況下,所有IIS用戶都使用這個賬戶登錄到伺服器,這個賬戶只允許本地登錄,沒有其他權利。假如允許遠程用戶用登錄Internet Guest 賬戶登錄就不必給遠程用戶用戶名及口令,Windows NT以Internet Guest 賬戶對待。
②NTFS文件安全性:NTFS提供安全性,可以控制對數據文件的訪問,應當將數據文件放在NTFS分區。NTFS可以精確控制哪些用戶和組以什麼許可權訪問文件和目錄。
(2)IIS的安全性:除了Windows NT的安全措施外,IIS本身也有安全控制能力。通過賬戶名及口令控制訪問:可以配置WWW服務要求用戶連入伺服器之前提供一個合法的用戶名及口令。
Ⅸ 什麼是CGI
1. 定義:
CGI(Common Gateway Interface)是HTTP伺服器與你的或其它機器上的程序進行「交談」的一種工具,其程序須運行在網路伺服器上。
2. 功能:
絕大多數的CGI程序被用來解釋處理傑自表單的輸入信息,並在伺服器產生相應的處理,或將相應的信息反饋給瀏覽器。CGI程序使網頁具有交互功能。
3. 運行環境:
CGI程序在UNIX操作系統上CERN或NCSA格式的伺服器上運行。在其它操作系統(如:windows NT及windows95等)的伺服器上也廣泛地使用CGI程序,同時它也適用於各種類型機器。
4. CGI處理步驟:
⑴通過Internet把用戶請求送到伺服器。
⑵伺服器接收用戶請求並交給CGI程序處理。
⑶CGI程序把處理結果傳送給伺服器。
⑷伺服器把結果送回到用戶。
5. CGI伺服器配置:
CGI程序不是放在伺服器上就能順利運行,如果要想使其在伺服器上順利的運行並准確的處理用戶的請求,則須對所使用的伺服器進行必要的設置。
配置:根據所使用的伺服器類型以及它的設置把CGI程序放在某一
特定的目錄中或使其帶有特定的擴展名。
⑴CREN格式伺服器的配置:
編輯CREN格式伺服器的配置文件通常為/etc/httpd.conf/
在文件中加入:Exec cgi-bin/*/home/www/cgi-bin/*.exec
命令中出現的第一個參數cgi-bin/*指出了在URL中出現的目錄
名字,並表示它出
現在系統主機後的第一個目錄中,如:
http://edgar.stern.nyn.e/cgi-bin/
命令中的第二個參數表示CGI程序目錄放在系統中的真實路徑。
CGI目錄除了可以點網路文件放在同一目錄中,也可以放在系統
的其它目錄中,但必須保證在你的系統中也具有同樣的目錄。在
對伺服器完成設置後,須重新啟動伺服器(除非HTTP伺服器是用
inetd啟動的)。
⑵NCSA格式伺服器的配置
在NCSA格式伺服器上有兩種方法進行設置:
①在srm.conf文件(通常在conf目錄下)中加入:
Script Alias/cgi-bin/cgi-bin/
Script Alias命令指出某一目錄下的文件是可執行程序,且這
個命令是用來執行
這些程序的;此命令的兩個參數與CERN格式伺服器中的Exec命
令的參數的含意一樣。
②在srm.conf文件加入: