導航:首頁 > IDC知識 > web伺服器與cgi

web伺服器與cgi

發布時間:2020-10-25 23:40:18

1、iis8.5web伺服器上的"isapi 和cgi 禁止"怎麼啟用

添加 ISAPI 和 CGI 限制
主要有四種方式:①使用用戶界面 (UI)。②在命令行窗口中運行 Appcmd.exe 命令。③直接編輯配置文件。④編寫 WMI 腳本。

一:使用用戶界面(UI)
1、打開 IIS 管理器,然後導航至您要配置的級別。
2、在「功能視圖」中,雙擊「ISAPI 和 CGI 限制」。
3、在「操作」窗格中,單擊「添加」。
4、在「添加 ISAPI 或 CGI 限制」對話框的「ISAPI 或 CGI 路徑」文本框中鍵入該 .dll 或 .exe 文件的路徑,或者單擊瀏覽按鈕 (...) 導航至該文件的位置。
5、在「描述」文本框中,鍵入有關限制的簡要描述。
6、選中「允許執行擴展路徑」,以允許限制自動運行。 如果未選中此選項,限制的狀態將默認為「不允許」。 以後,您可以通過選擇限制並在「操作」窗格中單擊「允許」來允許該限制。
7、單擊「確定」。

二:命令行
若要添加 ISAPI 和 CGI 限制,請使用以下語法:
appcmd set config /section: isapiCgiRestriction /+"[path=' string ',description=' string ',allowed='True | False']"

變數 path string 是 CGI 或 ISAPI 程序的 path。 變數 description string 用於描述該 CGI 或 ISAPI 程序。 allowed 屬性用於確定 IIS 是否可以運行該 CGI 或 ISAPI 程序。 例如,若要創建啟用 ISAPI 擴展 Test ISAPI 的 ISAPI 限制,請在命令提示符處鍵入以下命令,然後按 Enter:
appcmd set config /section: isapiCgiRestriction /+"[path=' %windir%\system32\inetsrv\test.dll ',description=' Test ISAPI ',allowed='True']"

三:配置
本主題中的過程會影響以下配置元素:
<add> ,此元素在如下元素下面: <isapiCgiRestriction>

四:WMI
請使用以下 WMI 類、方法或屬性執行此過程:
IsapiCgiRestrictionSection.Add

相關知識點介紹:
ISAPI 和 CGI 限制是允許在伺服器上執行動態內容的請求處理程序。 這些限制為 CGI 文件 (.exe) 或 ISAPI 擴展 (.dll)。 如果 IIS 配置系統允許添加自定義 ISAPI 或 CGI 限制,則您可以添加它們。

2、兩種古老的WEB編程技術 CGI和ISAPI之間的區別

引言
isapi與cgi都屬於通用的網關介面,主要用來實現www伺服器與客戶端的信息交互。
隨著www爆炸式的發展及其日益普及,人們的眼光已被充斥其上的商機所吸引。在www上求取經濟利益的方式主要有以下幾種:

通過為企業等作廣告宣傳收取廣告費;

向入網觀看者收取訂閱費;

直接在網上出售商品和服務。
目前大多數網站提供信息的方式是由用戶通過客戶瀏覽器(如netscape或explorer等)與www伺服器連接,然後用滑鼠點按超連接以瀏覽相關主
頁。在此過程中,基本上是伺服器向客戶端單方向的信息傳遞,隨著服務需求的不斷擴大,這種單純的單方向傳遞信息的靜態主頁已不能滿足需求。不論是服務提供
方還是客戶,都希望瀏覽伺服器將信息發送到用戶同時,用戶端也能將信息發送到伺服器端,實現伺服器與客戶的交互。典型的應用如:用戶登記表、用戶留言板以
及用戶通過www檢索伺服器端的資料庫等。

要實現一個可與用戶交互信息的服務系統,所需增加的有兩項:互動式主頁和用戶輸入信息處理程序。互動式主頁即有輸入信息的編輯框,選擇菜單按鈕之類
的主頁,以供用戶輸入信息;用戶輸入的信息則交由用戶信息處理程序處理。實現該程序可以有多種途徑,該程序可以放在伺服器端,也可以放在客戶機端,前者如
cgi、isapi,後者如javaapplet等。本文只討論前者,將闡述isapi的優點,並就其實現舉例說明。

二、web交互環境的實現
2.1互動式主頁

要實現web上的交互環境,用戶必須能夠在他瀏覽到的主頁上輸入信息,這就是一個互動式的主頁。一般來說,用戶輸入信息的形式有填寫編輯框,點選無線按鈕等選擇框及選擇下拉菜單等,所以
此文來自: 馬開東博客 轉載請註明出處 網址: http://www.makaidong.com
交互主頁也必須有這些輸入元素項。下面是一個簡單的交互主頁例子:
互動式主頁html源文件:isapi1.htm

「html」
「title」test「/title」
「head」
isapitest
「/head」
「body」
「formaction="/gjy/isapi1/debug/isapi1.dll?registeruser"method=post」
inputyourregisterinfomation:「br」
name:「inputtype="text"name="first"」「br」
address:「inputtype="text"name="middle"」「br」
email:「inputtype="text"name="last"」「br」「p」
「inputtype="submit"」
「inputtype="reset"」「/p」
「/form」
「/body」
「/html」

通過explorer瀏覽器打開該文件,可以看到如下效果(編輯框中已輸入內容):

2.2實現交互主頁的途徑。

從上述主頁製作描述可見,一個互動式主頁的製作是很簡單的,但要真正實現與用戶的交互,還必須要有應用程序的參與。這個程序可以屬於多種樣式,如cgi、javaapplet以及isapi。在上述主頁文件中,有一項:

「formaction="/gjy/isapi1/debug/isapi1.dll?registeruser"method=post」

這里就指明了對應處理該主頁輸入信息的程序(isapi1.dll),這是isapi的應用程序動態連接庫。對於cgi應用程序也是一樣的處理。

一般來說,該程序的功能就是要將用戶輸入信息傳到伺服器應用程序。

cgi是大家都比較熟悉的一種實現上述功能的有效途徑,也可能是當前最為流行的一種,而isapi是微軟獨特的具有類似cgi功能的網路應用介面標准。isapi在性能上較之cgi具有許多優良特性。下面我們簡單介紹一下cgi與isapi以及它們之間的性能差別。

三、cgi原理及其性能
3.1cgi概念

cgi即通用網關介面(commongatewayinterface),它是一個www伺服器

主機對外服務的標准介面,一般來說,一個cgi介面的功能就是在超文本文件和伺服器主機應用程序間傳遞信息。

3.2cgi程序語言

事實上,任何一種程序語言,只要能在伺服器主機上利用cgi介面來編寫應用程序,都可以叫作cgi程序語言。目前最為流行的cgi程序語言有四種:c,shell,perl和visualbasic,其它一些語言也有許多人在用,如tcl,fortran及applescript等。

3.3cgi程序的執行

cgi程序一般是個可執行程序。編譯好的cgi程序一般要集中放在一個目錄下。具體存放的位置隨操作系統的不同而不同,例如unix系統下是放在cgi-bin子目錄下,而在windows操作系統下
(注意,這里不包括nt4.0)以webstar或website作www伺服器,cgi程序都放在cgi-win下。cgi程序的執行一般有兩種調用方
式:1是通過url直接調用,如:「http://202.114.2.182/cgi-win/cgi.exe」,在瀏覽器的url欄里直接寫入上述描
述就可以調用該程
此文來自: 馬開東博客 轉載請註明出處 網址: http://www.makaidong.com
序;另一種方式,也是主要的方式,是通過互動式主頁里的form欄調用,通常都是用戶在填完一張輸入信息主頁後按確認按鈕啟動cgi程序,前面的交互主頁就是一個如此調用cgi的典型例子。
3.4cgi工作的主要流程

cgi工作的主要流程是:1.一個用戶請求激活一個cgi應用程序;2.cgi應用程序將交互主頁里用戶輸入信息提取出來;3.將用戶輸入的信息傳給伺服器主機應用程序(如資料庫查詢〕;4.將伺服器處理結果通過html文件返回給用戶;5.cgi進程結束。

3.5cgi的性能評價

cgi的跨平台性能極佳,幾乎可以在任何操作系統上實現,如dos、windows、unix、os/2、macintosh等。實現cgi的編程語言也有很多選擇。cgi的應用程序一般都是一個獨立的可執行程序,和www伺服器各自占據著不同的進程,而且一般一個cgi程序只能處理一個用戶請求。這樣,每有一個用戶請求,都會激活一個cgi進程,當用戶請求數量非常多時,會大量擠占系統的資源如內存,cpu時間等,造成效能低下。

四、isapi原理及其性能
4.1isapi概念

isapi即,是微軟提供的一套面向internet服務的api介面,它能實現cgi能提供的全部功能,並在此基礎上進行了擴展,如提供了過濾器應用程序介面。

4.2isapi程序語言

由於開發isapi應用要用到微軟的一套api,所以能用來開發isapi應用的語言不如cgi那麼多。主要有visualc++4.1以上版本,visualbasic5.0、borlandc++5.0也可以。

4.3isapi原理

isapi的工作原理和cgi大體上是相同的,都是通過互動式主頁取得用戶輸入信息,然後交伺服器後台處理。但是二者在實現機制上大相庭徑。isapi與cgi最大的區別在於:不同於cgi,在isapi下建立的應用程序是以動態連接庫的形式存在;而cgi的應用程序一般都是可執行程序。

4.4isapi程序的執行

isapi應用的工作流程與cgi有一些不同。isapi應用的dll不僅可以象cgi程序一樣被用戶請求激活,還可以被系統預先激活來監視用戶輸
入;對於被用戶激活的dll,在處理完一個用戶請求後不會馬上消失,而是繼續駐留在內存中等待處理別的用戶輸入,直到過了一段時間後一直沒有用戶輸入。

4.5isapi性能評價

一個isapi的dll,可以在被用戶請求激活後長駐內存,等待用戶的另一個請求,還可以在一個dll里設置多個用戶請求處理函數,此外,isapi的dll應用程序和www伺服器處於同一個進程中,效率要顯著高於cgi。

不過isapi的平台兼容性較差,目前只能用於微軟自己的windows95和nt操作系統上,伺服器平台也僅限於iis(internetinformationserver)和mspersonalwebserver以及ntworkstation上的peerwebserver。

五、isapi的實現
能夠支持isapi開發的平台只有微軟的幾個平台組合(如nt+iis,win95+mspersonalwebserver)。因此開發isapi只能
這幾個平台上。開發語言前已有述,這里向大家推薦visualc++4.2版,它的wizard提供了專門製作isapi的功能項。

3、我用tomcat搭建web伺服器 感覺和CGI無關了?是不是現在不用CGI了?

誰說CGI很古老的東西啊·· 笑看人生 的懂不懂的··
CGI和JSP、ASP一樣的么?
你知道回不知道CGI是什答么呀···別誤導別人啊···

給樓主點建議·
你的WEB伺服器是在什麼環境下的··
如果是嵌入式環境下 建議用BOA做WEB伺服器,對CGI的支持也比較好··是當前很適用的WEB伺服器了··
至於相關的如何搭建、如何配置、網上的文章資料很多的··搜索下就可以了··

4、STM32 WEB伺服器經常用到CGI SSI,可是為什麼這方面一個具體的應用教程都沒有?

其實SSI跟asp差別蠻大的,ssi只能是在shtml文件載入的時候,其中的ss標簽被替換為其他內容,(何種標簽替換為何種內容 是用戶在LwIP協議中自定義的),而ASP、CGi是可以在html載入後動態調用的,他們才能實現完善的動態交互功能

至於如何入手,lwip的源碼裡面有詳盡的英文注釋,lz可以對著看看。

如果你想進行lwip 的CGI編程,建議你看看這么幾個文件:httpd.h httpd.c httpd_cgi_ssi.c

我剛好是先學習了普通的PC機上搭建 IIS 伺服器,學習html 、cgi、asp方面的知識,然後才接觸lwip,然後在別人搭建好的嵌入式伺服器上進行cgi編程,基本上手了。

硬體上的cgi編程更底層,而復雜,如果你難以入手,你可以在你的windows下搭建IIS伺服器,熟悉一下cgi,再轉stm32上實現

5、webserver與CGI是什麼關系?

webserver是建立CGI環境的先決條件

6、Web中的CGI是什麼?她指的是什麼?

CGI(common gate internetgace)通用網關介面,是一段程序伺服器上供客戶端HTML頁面的介面,通俗講CGI就像是一座橋,網頁和 WEB伺服器中的執行程序連接起來,把HTML接受的指令傳遞給伺服器,把伺服器執行的結果返還給HTML頁;CGI可以實現處理表格,資料庫查詢,送電子郵件等許多操作,常見的CGI就是計數器。CGI使網頁變得不是靜態的,是互動式的。

7、自己寫的web伺服器如何調用CGI?

web前端不需自要理會CGI
CGI居於web伺服器端.
CGI通過環境變數獲取http請求,響應信息以及首部,通過stdin獲取http主體,通過stdout輸出http主體.從而完成http動態頁面的構建.

8、兩種古老的WEB編程技術 CGI和ISAPI之間的區別

ISAPI執行方式是以DLL動態庫的形式使用,它能實現CGI提供的全部功能,並在此基礎上進行了擴展,可以在被用戶請求後執行,在處理完一個用戶請求後不會馬上消失,這樣來提高程序的執行效率;

CGI執行方式,把網頁和WEB伺服器中的執行程序連接起來,它把HTML接收的指令傳遞給伺服器的執行程序,再把伺服器執行程序的結果返還給HTML頁。CGI 的跨平台性能極佳,幾乎可以在任何操作系統上實現。 CGI方式在遇到連接請求(用戶請求)先要創建cgi的子進程,激活一個CGI進程,然後處理請求,處理完後結束這個子進程。這就是fork-and-execute模式。所以用cgi 方式的伺服器有多少連接請求就會有多少cgi子進程,子進程反復載入是cgi性能低下的主要原因。都會當用戶請求數量非常多時,會大量擠占系統的資源如內存,CPU時間等,造成效能低下。

9、web伺服器怎麼才能支持cgi

 shtml和asp 有一些相似,以shtml命名的文件里,使用了ssi的一些指令,就版像asp中的指令,你可以權在SHTML文件中寫入SSI指令,當客戶端訪問這些shtml文件時,伺服器端會把這些SHTML文件進行讀取和解釋,把SHTML文件中包含的SSI指令解釋出來

10、tomcat 和 apache跟CGI都有什麼關系呢?

1、不是web服務,是web伺服器軟體。
2、所謂的服務,一般是指windows服務,也就是說,開機以後你看不到,但是在後台自動運行。
3、iis可以作為windows服務運行。
4、apache和tomcat也可以作為windows服務運行。
5、apache、tomcat、IIS、pws都是web伺服器軟體。
6、iis下跑asp是因為iis自帶了解析器,所以不用你再安裝了。
7、iis和apache功能基本相似。
8、jsp的解析器需要自己安裝,那就是tomcat。安裝後還要讓apache或者iis知道怎麼調用tomcat,這就是配置。
9、php也一樣,需要下載php的解析器,安裝配置。
10、apache、iis、tomcat可以安裝在一個機器上,但是他們一般都是用80埠,很是麻煩,這就需要配置,否則你在80埠只能看到一個。
11、oracle是資料庫,單獨運行,不要要web伺服器,有web界面管理工具,但這個是它自帶的,只要安裝了oracle資料庫,自己就有了!
12、你的基礎太差,建議多看看資料,多看看最基本的書本!

與web伺服器與cgi相關的知識