HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    web服務(wù)器通過什么執(zhí)行外部程序(web服務(wù)器通過什么執(zhí)行外部程序)

    發(fā)布時間:2023-04-18 20:07:25     稿源: 創(chuàng)意嶺    閱讀: 79        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于web服務(wù)器通過什么執(zhí)行外部程序的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    web服務(wù)器通過什么執(zhí)行外部程序(web服務(wù)器通過什么執(zhí)行外部程序)

    一、第五章:Web服務(wù)器

    5.1各種形狀和尺寸的Web服務(wù)器

    Web服務(wù)器會對HTTP請求進(jìn)行處理并提供響應(yīng)。術(shù)語“Web服務(wù)器”可以用來表示W(wǎng)eb服務(wù)器的軟件,也可以用來表示提供Web頁面的特定設(shè)備或計算機(jī)。

    Web服務(wù)器有著不同的風(fēng)格、形狀和尺寸。有普通的10行Perl腳本的Web服務(wù)器、50MB的安全商用引擎以及極小的卡上服務(wù)器。但不管功能有何差異,所有的 Web服務(wù)器都能夠接收請求資源的 HTTP請求,將內(nèi)容回送給客戶端(參見圖1-5)。

    5.1.1Web服務(wù)器的實現(xiàn)

    Web服務(wù)器實現(xiàn)了HTTP和相關(guān)的TCP連接處理。負(fù)責(zé)管理Web服務(wù)器提供的資源,以及對Web服務(wù)器的配置、控制及擴(kuò)展方面的管理。

    Web服務(wù)器邏輯實現(xiàn)了HTTP 協(xié)議、管理著Web資源,并負(fù)責(zé)提供Web服務(wù)器的管理功能。Web服務(wù)器邏輯和操作系統(tǒng)共同負(fù)責(zé)管理TCP連接。底層操作系統(tǒng)負(fù)責(zé)管理底層計算機(jī)系統(tǒng)的硬件細(xì)節(jié),并提供了TCP/IP網(wǎng)絡(luò)支持、負(fù)責(zé)裝載Web資源的文件系統(tǒng)以及控制當(dāng)前計算活動的進(jìn)程管理功能。

    5.3實際的Web服務(wù)器會做些什么

    例5-1顯示的 Perl服務(wù)器是一個Web服務(wù)器的小例子。最先進(jìn)的商用Web服務(wù)器要比它復(fù)雜得多,但它們確實執(zhí)行了幾項同樣的任務(wù),如圖5-3所示。

    (1)建立連接一—接受一個客戶端連接,或者如果不希望與這個客戶端建立連接,就

    將其關(guān)閉。

    (2)接收請求——從網(wǎng)絡(luò)中讀取一條HTTP請求報文。(3)處理請求——對請求報文進(jìn)行解釋,并采取行動。(4)訪問資源-———訪問報文中指定的資源。

    (5)構(gòu)建響應(yīng)——創(chuàng)建帶有正確首部的 HTTP響應(yīng)報文。(6)發(fā)送響應(yīng)——將響應(yīng)回送給客戶端。

    (7)記錄事務(wù)處理過程—-將與已完成事務(wù)有關(guān)的內(nèi)容記錄在一個日志文件中。

    5.4第一步——接受客戶端連接

    如果客戶端已經(jīng)打開了一條到服務(wù)器的持久連接,可以使用那條連接來發(fā)送它的請求。否則,客戶端需要打開一條新的到服務(wù)器的連接(回顧第4章,復(fù)習(xí)一下HTTP的連接管理技術(shù))。

    5.4.1處理新連接

    客戶端請求一條到Web服務(wù)器的TCP連接時,Web服務(wù)器會建立連接,判斷連接的另一端是哪個客戶端,從TCP連接中將IP地址解析出來。'一旦新連接建立起來

    并被接受,服務(wù)器就會將新連接添加到其現(xiàn)存Web服務(wù)器連接列表中,做好監(jiān)視連接上數(shù)據(jù)傳輸?shù)臏?zhǔn)備。

    Web服務(wù)器可以隨意拒絕或立即關(guān)閉任意一條連接。有些Web服務(wù)器會因為客戶端IP地址或主機(jī)名是未認(rèn)證的,或者因為它是已知的惡意客戶端而關(guān)閉連接。Web服務(wù)器也可以使用其他識別技術(shù)。

    5.4.2客戶端主機(jī)名識別

    可以用“反向 DNS”對大部分Web服務(wù)器進(jìn)行配置,以便將客戶端IP地址轉(zhuǎn)換成客戶端主機(jī)名。Web服務(wù)器可以將客戶端主機(jī)名用于詳細(xì)的訪問控制和日志記錄。但要注意的是,主機(jī)名查找可能會花費很長時間,這樣會降低Web事務(wù)處理的速度。很多大容量Web服務(wù)器要么會禁止主機(jī)名解析,要么只允許對特定內(nèi)容進(jìn)行解析。

    可以用配置指令HostnameLookups啟用Apache的主機(jī)查找功能。比如,例5-2中的Apache配置指令就只打開了HTML和CGI資源的主機(jī)名解析功能。

    例5-2配置Apache,為 HTML和CGI資源查找主機(jī)名

    HostnameLookups off

    <Files ~" - 《html |htmlcgi)$">

    HostnameLookups on

    </Files>

    5.5第二步—接收請求報文

    連接上有數(shù)據(jù)到達(dá)時,Web服務(wù)器會從網(wǎng)絡(luò)連接中讀取數(shù)據(jù),并將請求報文中的內(nèi)容解析出來(參見圖5-5)。

    解析請求報文時,Web服務(wù)器會:

    ·解析請求行,查找請求方法、指定的資源標(biāo)識符(URI)以及版本號,3各項之

    間由一個空格分隔,并以一個回車換行(CRLF)序列作為行的結(jié)束,“

    ·讀取以CRLF結(jié)尾的報文首部;

    檢測到以CRLF結(jié)尾的、標(biāo)識首部結(jié)束的空行(如果有的話)﹔

    ·如果有的話(長度由content-Length首部指定),讀取請求主體。

    解析請求報文時,Web服務(wù)器會不定期地從網(wǎng)絡(luò)上接收輸入數(shù)據(jù)。網(wǎng)絡(luò)連接可能隨時都會出現(xiàn)延遲。Web服務(wù)器需要從網(wǎng)絡(luò)中讀取數(shù)據(jù),將部分報文數(shù)據(jù)臨時存儲在內(nèi)存中,直到收到足以進(jìn)行解析的數(shù)據(jù)并理解其意義為止。

    5.5.1 報文的內(nèi)部表示法

    有些Web服務(wù)器還會用便于進(jìn)行報文操作的內(nèi)部數(shù)據(jù)結(jié)構(gòu)來存儲請求報文。比如,數(shù)據(jù)結(jié)構(gòu)中可能包含有指向請求報文中各個片段的指針及其長度,這樣就可以將這些首部存放在一個快速查詢表中,以便快速訪問特定首部的具體值了(參見圖5-6)。

    5.5.2連接的輸入/輸出處理結(jié)構(gòu)

    高性能的 Web服務(wù)器能夠同時支持?jǐn)?shù)千條連接。這些連接使得服務(wù)器可以與世界各地的客戶端進(jìn)行通信,每個客戶端都向服務(wù)器打開了一條或多條連接。某些連接可能在快速地向Web服務(wù)器發(fā)送請求,而其他一些連接則可能在慢慢發(fā)送,或者不經(jīng)常發(fā)送請求,還有一些可能是空閑的,安靜地等待著將來可能出現(xiàn)的動作。

    因為請求可能會在任意時刻到達(dá),所以Web服務(wù)器會不停地觀察有無新的Web請求。不同的Web服務(wù)器結(jié)構(gòu)會以不同的方式為請求服務(wù),如圖5-7所示。

    ·單線程Web服務(wù)器(參見圖5-7a)

    單線程的Web服務(wù)器一次只處理一個請求,直到其完成為止。一個事務(wù)處理結(jié)束之后,才去處理下一條連接。這種結(jié)構(gòu)易于實現(xiàn),但在處理過程中,所有其他連接都會被忽略。這樣會造成嚴(yán)重的性能問題,只適用于低負(fù)荷的服務(wù)器,以及type-o-serve這樣的診斷工具。

    ·多進(jìn)程及多線程Web服務(wù)器(參見圖5-7b)

    多進(jìn)程和多線程Web服務(wù)器用多個進(jìn)程,或更高效的線程同時對請求進(jìn)行處理。3可以根據(jù)需要創(chuàng)建,或者預(yù)先創(chuàng)建一些線程/進(jìn)程?!阌行┓?wù)器會為每條連接分配一個線程/進(jìn)程,但當(dāng)服務(wù)器同時要處理成百、上千,甚至數(shù)以萬計的連接時,需要的進(jìn)程或線程數(shù)量可能會消耗太多的內(nèi)存或系統(tǒng)資源。因此,很多多線程Web服務(wù)器都會對線程/進(jìn)程的最大數(shù)量進(jìn)行限制。

    ·復(fù)用I/O的服務(wù)器(參見圖5-7c)

    為了支持大量的連接,很多Web服務(wù)器都采用了復(fù)用結(jié)構(gòu)。在復(fù)用結(jié)構(gòu)中,要同時監(jiān)視所有連接上的活動。當(dāng)連接的狀態(tài)發(fā)生變化時(比如,有數(shù)據(jù)可用,或出現(xiàn)錯誤時),就對那條連接進(jìn)行少量的處理,處理結(jié)束之后,將連接返回到開放連接列表中,等待下一次狀態(tài)變化。只有在有事情可做時才會對連接進(jìn)行處理,在空閑連接上等待的時候并不會綁定線程和進(jìn)程。

    ·復(fù)用的多線程Web服務(wù)器(參見圖5-7d)

    有些系統(tǒng)會將多線程和復(fù)用功能結(jié)合在一起,以利用計算機(jī)平臺上的多個CPU.多個線程(通常是一個物理處理器)中的每一個都在觀察打開的連接(或打開的連接中的一個子集),并對每條連接執(zhí)行少量的任務(wù)。

    5.6第三步———處理請求

    一旦Web服務(wù)器收到了請求,就可以根據(jù)方法、資源、首部和可選的主體部分來對請求進(jìn)行處理了。

    有些方法(比如POST)要求請求報文中必須帶有實體主體部分的數(shù)據(jù)。其他一些方法(比如OPTIONS)允許有請求的主體部分,也允許沒有。少數(shù)方法(比如GET)禁止在請求報文中包含實體的主體數(shù)據(jù)。

    這里我們并不對請求的具體處理方式進(jìn)行討論,因為本書其余大多數(shù)章節(jié)都在討論這個問題。

    5.7第四步——-對資源的映射及訪問

    Web 服務(wù)器是資源服務(wù)器。它們負(fù)責(zé)發(fā)送預(yù)先創(chuàng)建好的內(nèi)容,比如HTML頁面或JPEG 圖片,以及運行在服務(wù)器上的資源生成程序所產(chǎn)生的動態(tài)內(nèi)容。

    5.7.1 docroot

    Web服務(wù)器支持各種不同類型的資源映射,但最簡單的資源映射形式就是用請求URI作為名字來訪問Web服務(wù)器文件系統(tǒng)中的文件。通常,Web服務(wù)器的文件系統(tǒng)中會有一個特殊的文件夾專門用于存放Web內(nèi)容。這個文件夾被稱為文檔的根目錄(document root,或docroot)。Web服務(wù)器從請求報文中獲取URI,并將其附加在文檔根目錄的后面。

    在圖5-8中,有一條對/specials/saw-blade.gif 的請求到達(dá)。這個例子中Web服務(wù)器的文檔根目錄為/us/local/httpd/files。Web服務(wù)器會返回文件/usr/local/httpd/files/specials/saw-blade.gif。

    在配置文件httpd.conf中添加一個 DocumentRoot行就可以為Apache Web服務(wù)器設(shè)置文檔的根目錄了:

    DocumentRoot /usr/ local/httpd/files

    服務(wù)器要注意,不能讓相對URL退到docroot之外,將文件系統(tǒng)的其余部分暴露出來。比如,大多數(shù)成熟的Web服務(wù)器都不允許這樣的URI看到Joe的五金商店文檔根目錄上一級的文件:

    http://www.joes-hardware.com/ ..

    5.8.3重定向

    Web服務(wù)器有時會返回重定向響應(yīng)而不是成功的報文。Web服務(wù)器可以將瀏覽器重定向到其他地方來執(zhí)行請求。重定向響應(yīng)由返回碼3XX說明。Location響應(yīng)首部包含了內(nèi)容的新地址或優(yōu)選地址的URI。重定向可用于下列情況。

    ·永久刪除的資源

    資源可能已經(jīng)被移動到了新的位置,或者被重新命名,有了一個新的URL。Web服務(wù)器可以告訴客戶端資源已經(jīng)被重命名了,這樣客戶端就可以在從新地址獲取資源之前,更新書簽之類的信息了。狀態(tài)碼301 Moved Permanently就用于此類重定向?!づR時刪除的資源

    如果資源被臨時移走或重命名了,服務(wù)器可能希望將客戶端重定向到新的位置上去。但由于重命名是臨時的,所以服務(wù)器希望客戶端將來還可以回頭去使用老的URL,不要對書簽進(jìn)行更新。狀態(tài)碼303 See Other以及狀態(tài)碼307 TemporaryRedirect就用于此類重定向。

    二、簡述web技術(shù)的結(jié)構(gòu)

    它是超級文本的簡稱。二、超媒體(hypermedia) 超媒體是超文本(hypertext)和多媒體在信息瀏覽環(huán)境下的結(jié)合。它是超級媒體的簡稱。用戶不僅能從一個文本跳到另一個文本,而且可以激活一段聲音,顯示一個圖形,甚至可以播放一段動畫。Internet采用超文本和超媒體的信息組織方式,將信息的鏈接擴(kuò)展到整個Internet上。Web就是一種超文本信息系統(tǒng),Web的一個主要的概念就是超文本連接,它使得文本不再象一本書一樣是固定的線性的。而是可以從一個位置跳到另外的位置??梢詮闹蝎@取更多的信息??梢赞D(zhuǎn)到別的主題上。想要了解某一個主題的內(nèi)容只要在這個主題上點一下,就可以跳轉(zhuǎn)到包含這一主題的文檔上。正是這種多連接性把它稱為Web。三、超文本傳輸協(xié)議(HTTP) Hypertext Transfer Protocol超文本在互聯(lián)網(wǎng)上的傳輸協(xié)議。當(dāng)你想進(jìn)入萬維網(wǎng)上一個網(wǎng)頁, 或者其他網(wǎng)絡(luò)資源的時候,通常你要首先在你的瀏覽器上鍵入你想訪問網(wǎng)頁的統(tǒng)一資源定位符(UniformResourceLocator),或者通過超鏈接方式鏈接到那個網(wǎng)頁或網(wǎng)絡(luò)資源。這之后的工作首先是URL的服務(wù)器名部分,被名為域名系統(tǒng)的分布于全球的因特網(wǎng)數(shù)據(jù)庫解析,并根據(jù)解析結(jié)果決定進(jìn)入哪一個IP地址(IP address)。接下來的步驟是為所要訪問的網(wǎng)頁,向在那個IP地址工作的服務(wù)器發(fā)送一個HTTP請求。在通常情況下,HTML文本、圖片和構(gòu)成該網(wǎng)頁的一切其他文件很快會被逐一請求并發(fā)送回用戶。網(wǎng)絡(luò)瀏覽器接下來的工作是把HTML、CSS和其他接受到的文件所描述的內(nèi)容,加上圖像、鏈接和其他必須的資源,顯示給用戶。這些就構(gòu)成了你所看到的“網(wǎng)頁”。大多數(shù)的網(wǎng)頁自身包含有超鏈接指向其他相關(guān)網(wǎng)頁,可能還有下載、源文獻(xiàn)、定義和其他網(wǎng)絡(luò)資源。像這樣通過超鏈接,把有用的相關(guān)資源組織在一起的集合,就形成了一個所謂的信息的“網(wǎng)”。這個網(wǎng)在因特網(wǎng)上被方便使用,就構(gòu)成了最早在1990年代初蒂姆·伯納斯-李所說的萬維網(wǎng)。傳統(tǒng)的Web數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu) 傳統(tǒng)的Web數(shù)據(jù)庫系統(tǒng)一般實現(xiàn)Web數(shù)據(jù)庫系統(tǒng)的連接和應(yīng)用可采取兩種方法,一種是在Web服務(wù)器端提供中間件來連接Web服務(wù)器和數(shù)據(jù)庫服務(wù)器,另一種是把應(yīng)用程序下載到客戶端并在客戶端直接訪問數(shù)據(jù)庫。中間件負(fù)責(zé)管理Web服務(wù)器和數(shù)據(jù)庫服務(wù)器之間的通信并提供應(yīng)用程序服務(wù),它能夠直接調(diào)用外部程序或腳本代碼來訪問數(shù)據(jù)庫,因此可以提供與數(shù)據(jù)庫相關(guān)的動態(tài)HTML頁面,或執(zhí)行用戶查詢,并將查詢結(jié)果格式化成HTML頁面。通過Web服務(wù)器返回給Web瀏覽器。最基本的中間件技術(shù)有通過網(wǎng)關(guān)接口CGI和應(yīng)用程序接口API兩種。(一)、基于通用網(wǎng)關(guān)接口CGI CGI是WWW服務(wù)器運行時外部程序的規(guī)范,按照CGI編寫的程序可以擴(kuò)展服務(wù)器的功能,完成服務(wù)器本身不能完成的工作,外部程序執(zhí)行時間可以生成HTML文檔,并將文檔返回WWW服務(wù)器。CGI應(yīng)用程序能夠與瀏覽器進(jìn)行交互作用,還可以通過數(shù)據(jù)庫的API與數(shù)據(jù)庫服務(wù)器等外部數(shù)據(jù)源進(jìn)行通信,如一個CGI程序可以從數(shù)據(jù)庫服務(wù)器中獲取數(shù)據(jù),然后格式化為HTML文檔后發(fā)送給瀏覽器,也可以將從瀏覽器獲得的數(shù)據(jù)放到數(shù)據(jù)庫中。幾乎使用的服務(wù)器軟件都支持CGI,開發(fā)人員可以使用任何一種WWW服務(wù)器內(nèi)置語言編寫CGI,其中包括流行的C、C、VB和Delphi等。從體系結(jié)構(gòu)上來看,用戶通過Web瀏覽器輸入查詢信息,瀏覽器通過HTTP協(xié)議向Web服務(wù)器發(fā)出帶有查詢信息的請求,Web服務(wù)器按照CGI協(xié)議激活外部CGI程序,由該程序向DBMS發(fā)出SQL請求并將結(jié)果轉(zhuǎn)化為HTML后返回給Web服務(wù)器。再由Web服務(wù)器返回給Web瀏覽器。這種結(jié)構(gòu)體現(xiàn)了客戶/服務(wù)器方式的三層模型,其中Web服務(wù)器和CGI程序?qū)嶋H起到了HTML和SQL轉(zhuǎn)換的網(wǎng)關(guān)的作用。CGI的典型操作過程是:分析CGI數(shù)據(jù);打開與DBMS的連接;發(fā)送SQL請求并得到結(jié)果;將結(jié)果轉(zhuǎn)化為HTML;關(guān)閉DBMS的連接;將HTML結(jié)果返回給Web服務(wù)器。基于Web的數(shù)據(jù)庫訪問利用已有的信息資源和服務(wù)器。其訪問頻率大,尤其是熱點數(shù)據(jù)。但其主要的缺點是:①客戶端與后端數(shù)據(jù)庫服務(wù)器通信必須通過Web服務(wù)器,且Web服務(wù)器要進(jìn)行數(shù)據(jù)與HTML文檔的互相轉(zhuǎn)換,當(dāng)多個用戶同時發(fā)出請求時,必然在Web服務(wù)器形成信息和發(fā)布瓶頸。②CGI應(yīng)用程序每次運行都需打開和關(guān)閉數(shù)據(jù)庫連接,效率低,操作費時;③CGI應(yīng)用程序不能由多個客戶機(jī)請求共享,即使新請求到來時CGI程序正在運行,也會啟動另一個CGI應(yīng)用程序,隨著并行請求的數(shù)量增加,服務(wù)器上將生成越來越多的進(jìn)程。為每個請求都生成進(jìn)程既費時又需要大量內(nèi)存,影響了資源的使用效率,導(dǎo)致性能降低并增加等待時間;④由于SQL與HTML差異很大,CGI程序中的轉(zhuǎn)換代碼編寫繁瑣,維護(hù)困難;⑤安全性差,缺少用戶訪問控制,對數(shù)據(jù)庫難以設(shè)置安全訪問權(quán)限;⑥HTTP協(xié)議是無狀態(tài)且沒有常連接的協(xié)議,DBMS事務(wù)的提交與否無法得到驗證,不能構(gòu)造Web上的OLTP應(yīng)用。(二)、基于服務(wù)器擴(kuò)展的API 為了克服CGI的局限性,出現(xiàn)的另一種中間件解決方案是基于服務(wù)器擴(kuò)展API的結(jié)構(gòu)。與CGI相比,API應(yīng)用程序與Web服務(wù)器結(jié)合得更加緊密,占用的系統(tǒng)資源也少得多,而運行效率卻大大提高,同時還提供更好的保護(hù)和安全性。服務(wù)器API一般作為一個DLL提供,是駐留在WWW服務(wù)器中的程序代碼,其擴(kuò)展WWW服務(wù)器的功能與CGI相同。WWW開發(fā)人員不僅可以API解決CGI可以解決的一切問題,而且能夠進(jìn)一步解決基于不同WWW應(yīng)用程序的特殊請求。各種API與其相應(yīng)的WWW服務(wù)器緊密結(jié)合,其初始開發(fā)目標(biāo)服務(wù)器的運行性能進(jìn)一步發(fā)掘、提高。用API開發(fā)的程序比用CGI開發(fā)的程序在性能上提高了很多,但開發(fā)API程序比開發(fā)CGI程序要復(fù)雜得多。API應(yīng)用程序需要一些編程方面的專門知識,如多線程、進(jìn)程同步、直接協(xié)議編程以及錯誤處理等。目前主要的WWWAPI有Microsoft公司的ISAPI、Netscape公司的NSAPI和OReily公司的WSAPI等。使用ISPAI開發(fā)的程序性能要優(yōu)于用CGI開發(fā)的程序,這主要是因為ISAPI應(yīng)用程序是一些與WWW服務(wù)器軟件處于同一地址空間的DLL,因此所有的HTTP服務(wù)器進(jìn)程能夠直接利用各種資源這顯然比調(diào)用不在同一地址空間的CGI程序語句要占用更少的系統(tǒng)時間。而NSAPI同ISAPI一樣,給WWW開發(fā)人員定制了NetscapeWWW服務(wù)器基本服務(wù)的功能。開發(fā)人員利用NSAPI可以開發(fā)與WWW服務(wù)器的接口,以及與數(shù)據(jù)庫服務(wù)器等外部資源的接口。雖然基于服務(wù)器擴(kuò)展API的結(jié)構(gòu)可以方便、靈活地實現(xiàn)各種功能,連接所有支持32位ODBC的數(shù)據(jù)庫系統(tǒng),但這種結(jié)構(gòu)的缺陷也是明顯的:①各種API之間兼容性很差,缺乏統(tǒng)一的標(biāo)準(zhǔn)來管理這些接口;②開發(fā)API應(yīng)用程序也要比開發(fā)CGI應(yīng)用復(fù)雜得多; ③這些API只能工作在專用Web服務(wù)器和操作系統(tǒng)上。(三)、基于JDBC的Web數(shù)據(jù)庫技術(shù) Java的推出,使WWW頁面有了活力和動感。Internet用戶可以從WWW服務(wù)器上下載Java小程序到本地瀏覽器運行。這些下載的小程序就像本地程序一樣,可獨立地訪問本地和其他服務(wù)器資源。而最初的Java語言并沒有數(shù)據(jù)庫訪問的功能,隨著應(yīng)用的深入,要求Java提供數(shù)據(jù)庫訪問功能的呼聲越來越高。為了防止出現(xiàn)對Java在數(shù)據(jù)庫訪問方面各不相同的擴(kuò)展,JavaSoft公司指定了JDBC,作為Java語言的數(shù)據(jù)庫訪問API。采用JDBC技術(shù),在JavaApplet中訪問數(shù)據(jù)庫的優(yōu)點在于:直接訪問數(shù)據(jù)庫,不再需要Web數(shù)據(jù)庫的介入,從而避開了CGI方法的一些局限性;用戶訪問控制可以由數(shù)據(jù)庫服務(wù)器本地的安全機(jī)制來解決,提高了安全性;JDBC是支持基本SQL功能的一個通用低層的應(yīng)用程序接口,在不同的數(shù)據(jù)庫功能的層次上提供了一個統(tǒng)一的用戶界面,為跨平臺跨數(shù)據(jù)庫系統(tǒng)進(jìn)行直接的Web訪問提供了方案。從而克服了API方法一些缺陷;同時,可以方便地實現(xiàn)與用戶地交互,提供豐富的圖形功能和聲音、視頻等多媒體信息功能。JDBC是用于執(zhí)行SQL語句的Java應(yīng)用程序接口API,由Java語言編寫的類和接口組成。Java是一種面向?qū)ο?、多線程與平臺無關(guān)的編程語言,具有極強(qiáng)的可移植性、安全性和強(qiáng)健性。JDBC是一種規(guī)范,能為開發(fā)者提供標(biāo)準(zhǔn)的數(shù)據(jù)庫訪問類和接口,能夠方便地向任何關(guān)系數(shù)據(jù)庫發(fā)送SQL語句,同時JDBC是一個支持基本SQL功能的低層應(yīng)用程序接口,但實際上也支持高層的數(shù)據(jù)庫訪問工具及API。所有這些工作都建立在X/Open SQL CLI基礎(chǔ)上。JDBC的主要任務(wù)是定義一個自然的Java接口來與X/OpenCLI中定義的抽象層和概念連接。JDBC的兩種主要接口分別面向應(yīng)用程序的開發(fā)人員的JDBC API和面向驅(qū)動程序低層的JDBC DriverAPI。JDBC完成的工作是:建立與數(shù)據(jù)庫的連接;發(fā)送SQL語句;返回數(shù)據(jù)結(jié)果給Web瀏覽器。

    三、web服務(wù)器

    WEB服務(wù)器

    編輯本段什么是WEB服務(wù)器

    WEB服務(wù)器也稱為WWW(WORLD WIDE WEB)服務(wù)器,主要功能是提供網(wǎng)上信息瀏覽服務(wù)。

    (1)應(yīng)用層使用HTTP協(xié)議。

    (2)HTML文檔格式。

    (3)瀏覽器統(tǒng)一資源定位器(URL)。

    WWW代表萬維網(wǎng)的意思

    WWW 是 Internet 的多媒體信息查詢工具,是 Internet 上近年才發(fā)展起來的服務(wù),也是發(fā)展最快和目前用的最廣泛的服務(wù)。正是因為有了WWW工具,才使得近年來 Internet 迅速發(fā)展,且用戶數(shù)量飛速增長。

    1、WWW簡介

    WWW 是 World Wide Web (環(huán)球信息網(wǎng))的縮寫,也可以簡稱為 Web,中文名字為“萬維網(wǎng)”。它起源于1989年3月,由歐洲量子物理實驗室 CERN(the European Laboratory for Particle Physics)所發(fā)展出來的主從結(jié)構(gòu)分布式超媒體系統(tǒng)。通過萬維網(wǎng),人們只要通過使用簡單的方法,就可以很迅速方便地取得豐富的信息資料。 由于用戶在通過 Web 瀏覽器訪問信息資源的過程中,無需再關(guān)心一些技術(shù)性的細(xì)節(jié),而且界面非常友好,因而 Web 在Internet 上一推出就受到了熱烈的歡迎,走紅全球,并迅速得到了爆炸性的發(fā)展。

    2、WWW的發(fā)展和特點

    長期以來,人們只是通過傳統(tǒng)的媒體(如電視、報紙、雜志和廣播等)獲得信息。但隨著計算機(jī)網(wǎng)絡(luò)的發(fā)展,人們想要獲取信息,已不再滿足于傳統(tǒng)媒體那種單方面?zhèn)鬏敽瞳@取的方式,而希望有一種主觀的選擇性。現(xiàn)在,網(wǎng)絡(luò)上提供各種類別的數(shù)據(jù)庫系統(tǒng),如文獻(xiàn)期刊、產(chǎn)業(yè)信息、氣象信息、論文檢索等等。由于計算機(jī)網(wǎng)絡(luò)的發(fā)展,信息的獲取變得非常及時、迅速和便捷。

    到了1993年,WWW 的技術(shù)有了突破性的進(jìn)展,它解決了遠(yuǎn)程信息服務(wù)中的文字顯示、數(shù)據(jù)連接以及圖像傳遞的問題,使得 WWW 成為 Internet 上最為流行的信息傳播方式。 現(xiàn)在,Web 服務(wù)器成為 Internet 上最大的計算機(jī)群,Web 文檔之多、鏈接的網(wǎng)絡(luò)之廣,令人難以想象??梢哉f,Web 為 Internet 的普及邁出了開創(chuàng)性的一步,是近年來 Internet 上取得的最激動人心的成就。

    WWW 采用的是客戶/服務(wù)器結(jié)構(gòu),其作用是整理和儲存各種WWW資源,并響應(yīng)客戶端軟件的請求,把客戶所需的資源傳送到 Windows 95(或Windows98)、Windows NT、UNIX 或 Linux 等平臺上。

    使用最多的 web server 服務(wù)器軟件 有兩個:微軟的信息服務(wù)器(iis),和Apache。

    通俗的講,Web服務(wù)器傳送(serves)頁面使瀏覽器可以瀏覽,然而應(yīng)用程序服務(wù)器提供的是客戶端應(yīng)用程序可以調(diào)用(call)的方法(methods)。確切一點,你可以說:Web服務(wù)器專門處理HTTP請求(request),但是應(yīng)用程序服務(wù)器是通過很多協(xié)議來為應(yīng)用程序提供(serves)商業(yè)邏輯(business logic)。

    Web服務(wù)器可以解析(handles)HTTP協(xié)議。當(dāng)Web服務(wù)器接收到一個HTTP請求(request),會返回一個HTTP響應(yīng)(response),例如送回一個HTML頁面。為了處理一個請求(request),Web服務(wù)器可以響應(yīng)(response)一個靜態(tài)頁面或圖片,進(jìn)行頁面跳轉(zhuǎn)(redirect),或者把動態(tài)響應(yīng)(dynamic response)的產(chǎn)生委托(delegate)給一些其它的程序例如CGI腳本,JSP(JavaServer Pages)腳本,servlets,ASP(Active Server Pages)腳本,服務(wù)器端(server-side)JavaScript,或者一些其它的服務(wù)器端(server-side)技術(shù)。無論它們(譯者注:腳本)的目的如何,這些服務(wù)器端(server-side)的程序通常產(chǎn)生一個HTML的響應(yīng)(response)來讓瀏覽器可以瀏覽。

    要知道,Web服務(wù)器的代理模型(delegation model)非常簡單。當(dāng)一個請求(request)被送到Web服務(wù)器里來時,它只單純的把請求(request)傳遞給可以很好的處理請求(request)的程序(譯者注:服務(wù)器端腳本)。Web服務(wù)器僅僅提供一個可以執(zhí)行服務(wù)器端(server-side)程序和返回(程序所產(chǎn)生的)響應(yīng)(response)的環(huán)境,而不會超出職能范圍。服務(wù)器端(server-side)程序通常具有事務(wù)處理(transaction processing),數(shù)據(jù)庫連接(database connectivity)和消息(messaging)等功能。

    雖然Web服務(wù)器不支持事務(wù)處理或數(shù)據(jù)庫連接池,但它可以配置(employ)各種策略(strategies)來實現(xiàn)容錯性(fault tolerance)和可擴(kuò)展性(scalability),例如負(fù)載平衡(load balancing),緩沖(caching)。集群特征(clustering—features)經(jīng)常被誤認(rèn)為僅僅是應(yīng)用程序服務(wù)器專有的特征。

    應(yīng)用程序服務(wù)器(The Application Server)

    根據(jù)我們的定義,作為應(yīng)用程序服務(wù)器,它通過各種協(xié)議,可以包括HTTP,把商業(yè)邏輯暴露給(expose)客戶端應(yīng)用程序。Web服務(wù)器主要是處理向瀏覽器發(fā)送HTML以供瀏覽,而應(yīng)用程序服務(wù)器提供訪問商業(yè)邏輯的途徑以供客戶端應(yīng)用程序使用。應(yīng)用程序使用此商業(yè)邏輯就象你調(diào)用對象的一個方法(或過程語言中的一個函數(shù))一樣。

    應(yīng)用程序服務(wù)器的客戶端(包含有圖形用戶界面(GUI)的)可能會運行在一臺PC、一個Web服務(wù)器或者甚至是其它的應(yīng)用程序服務(wù)器上。在應(yīng)用程序服務(wù)器與其客戶端之間來回穿梭(traveling)的信息不僅僅局限于簡單的顯示標(biāo)記。相反,這種信息就是程序邏輯(program logic)。 正是由于這種邏輯取得了(takes)數(shù)據(jù)和方法調(diào)用(calls)的形式而不是靜態(tài)HTML,所以客戶端才可以隨心所欲的使用這種被暴露的商業(yè)邏輯。

    在大多數(shù)情形下,應(yīng)用程序服務(wù)器是通過組件(component)的應(yīng)用程序接口(API)把商業(yè)邏輯暴露(expose)(給客戶端應(yīng)用程序)的,例如基于J2EE(Java 2 Platform, Enterprise Edition)應(yīng)用程序服務(wù)器的EJB(Enterprise JavaBean)組件模型。此外,應(yīng)用程序服務(wù)器可以管理自己的資源,例如看大門的工作(gate-keeping duties)包括安全(security),事務(wù)處理(transaction processing),資源池(resource pooling), 和消息(messaging)。就象Web服務(wù)器一樣,應(yīng)用程序服務(wù)器配置了多種可擴(kuò)展(scalability)和容錯(fault tolerance)技術(shù)。

    例如,設(shè)想一個在線商店(網(wǎng)站)提供實時定價(real-time pricing)和有效性(availability)信息。這個站點(site)很可能會提供一個表單(form)讓你來選擇產(chǎn)品。當(dāng)你提交查詢(query)后,網(wǎng)站會進(jìn)行查找(lookup)并把結(jié)果內(nèi)嵌在HTML頁面中返回。網(wǎng)站可以有很多種方式來實現(xiàn)這種功能。我要介紹一個不使用應(yīng)用程序服務(wù)器的情景和一個使用應(yīng)用程序服務(wù)器的情景。觀察一下這兩中情景的不同會有助于你了解應(yīng)用程序服務(wù)器的功能。

    情景1:不帶應(yīng)用程序服務(wù)器的Web服務(wù)器

    在此種情景下,一個Web服務(wù)器獨立提供在線商店的功能。Web服務(wù)器獲得你的請求(request),然后發(fā)送給服務(wù)器端(server-side)可以處理請求(request)的程序。此程序從數(shù)據(jù)庫或文本文件(flat file,譯者注:flat file是指沒有特殊格式的非二進(jìn)制的文件,如properties和XML文件等)中查找定價信息。一旦找到,服務(wù)器端(server-side)程序把結(jié)果信息表示成(formulate)HTML形式,最后Web服務(wù)器把會它發(fā)送到你的Web瀏覽器。

    簡而言之,Web服務(wù)器只是簡單的通過響應(yīng)(response)HTML頁面來處理HTTP請求(request)。

    情景2:帶應(yīng)用程序服務(wù)器的Web服務(wù)器

    情景2和情景1相同的是Web服務(wù)器還是把響應(yīng)(response)的產(chǎn)生委托(delegates)給腳本(譯者注:服務(wù)器端(server-side)程序)。然而,你可以把查找定價的商業(yè)邏輯(business logic)放到應(yīng)用程序服務(wù)器上。由于這種變化,此腳本只是簡單的調(diào)用應(yīng)用程序服務(wù)器的查找服務(wù)(lookup service),而不是已經(jīng)知道如何查找數(shù)據(jù)然后表示為(formulate)一個響應(yīng)(response)。 這時當(dāng)該腳本程序產(chǎn)生HTML響應(yīng)(response)時就可以使用該服務(wù)的返回結(jié)果了。

    在此情景中,應(yīng)用程序服務(wù)器提供(serves)了用于查詢產(chǎn)品的定價信息的商業(yè)邏輯。(服務(wù)器的)這種功能(functionality)沒有指出有關(guān)顯示和客戶端如何使用此信息的細(xì)節(jié),相反客戶端和應(yīng)用程序服務(wù)器只是來回傳送數(shù)據(jù)。當(dāng)有客戶端調(diào)用應(yīng)用程序服務(wù)器的查找服務(wù)(lookup service)時,此服務(wù)只是簡單的查找并返回結(jié)果給客戶端。

    通過從響應(yīng)產(chǎn)生(response-generating)HTML的代碼中分離出來,在應(yīng)用程序之中該定價(查找)邏輯的可重用性更強(qiáng)了。其他的客戶端,例如收款機(jī),也可以調(diào)用同樣的服務(wù)(service)來作為一個店員給客戶結(jié)帳。相反,在情景1中的定價查找服務(wù)是不可重用的因為信息內(nèi)嵌在HTML頁中了。

    總而言之,在情景2的模型中,在Web服務(wù)器通過回應(yīng)HTML頁面來處理HTTP請求(request),而應(yīng)用程序服務(wù)器則是通過處理定價和有效性(availability)請求(request)來提供應(yīng)用程序邏輯的。

    警告(Caveats)

    現(xiàn)在,XML Web Services已經(jīng)使應(yīng)用程序服務(wù)器和Web服務(wù)器的界線混淆了。通過傳送一個XML有效載荷(payload)給服務(wù)器,Web服務(wù)器現(xiàn)在可以處理數(shù)據(jù)和響應(yīng)(response)的能力與以前的應(yīng)用程序服務(wù)器同樣多了。

    另外,現(xiàn)在大多數(shù)應(yīng)用程序服務(wù)器也包含了Web服務(wù)器,這就意味著可以把Web服務(wù)器當(dāng)作是應(yīng)用程序服務(wù)器的一個子集(subset)。雖然應(yīng)用程序服務(wù)器包含了Web服務(wù)器的功能,但是開發(fā)者很少把應(yīng)用程序服務(wù)器部署(deploy)成這種功能(capacity)(譯者注:這種功能是指既有應(yīng)用程序服務(wù)器的功能又有Web服務(wù)器的功能)。相反,如果需要,他們通常會把Web服務(wù)器獨立配置,和應(yīng)用程序服務(wù)器一前一后。這種功能的分離有助于提高性能(簡單的Web請求(request)就不會影響應(yīng)用程序服務(wù)器了),分開配置(專門的Web服務(wù)器,集群(clustering)等等),而且給最佳產(chǎn)品的選取留有余地。

    編輯本段大型WEB服務(wù)器

    在UNIX和LINUX平臺下使用最廣泛的免費HTTP服務(wù)器是W3C、NCSA和APACHE服務(wù)器,而Windows平臺NT/2000/2003使用IIS的WEB服務(wù)器。在選擇使用WEB服務(wù)器應(yīng)考慮的本身特性因素有:性能、安全性、日志和統(tǒng)計、虛擬主機(jī)、代理服務(wù)器、緩沖服務(wù)和集成應(yīng)用程序等,下面介紹幾種常用的WEB服務(wù)器。

    Microsoft IIS

    Microsoft的Web服務(wù)器產(chǎn)品為Internet Information Server (IIS), IIS 是允許在公共Intranet或Internet上發(fā)布信息的Web服務(wù)器。IIS是目前最流行的Web服務(wù)器產(chǎn)品之一,很多著名的網(wǎng)站都是建立在IIS的平臺上。IIS提供了一個圖形界面的管理工具,稱為 Internet服務(wù)管理器,可用于監(jiān)視配置和控制Internet服務(wù)。

    IIS是一種Web服務(wù)組件,其中包括Web服務(wù)器、FTP服務(wù)器、NNTP服務(wù)器和SMTP服務(wù)器,分別用于網(wǎng)頁瀏覽、文件傳輸、新聞服務(wù)和郵件發(fā)送等方面,它使得在網(wǎng)絡(luò)(包括互聯(lián)網(wǎng)和局域網(wǎng))上發(fā)布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作為擴(kuò)展Web服務(wù)器功能的編程接口;同時,它還提供一個Internet數(shù)據(jù)庫連接器,可以實現(xiàn)對數(shù)據(jù)庫的查詢和更新。

    IBM WebSphere

    WebSphere Application Server 是 一 種功能完善、開放的Web應(yīng)用程序服務(wù)器,是IBM電子商務(wù)計劃的核心部分,它是基于 Java 的應(yīng)用環(huán)境,用于建立、部署和管理 Internet 和 Intranet Web 應(yīng)用程序。 這一整套產(chǎn)品進(jìn)行了擴(kuò)展,以適應(yīng) Web 應(yīng)用程序服務(wù)器的需要,范圍從簡單到高級直到企業(yè)級。

    WebSphere 針對以 Web 為中心的開發(fā)人員,他們都是在基本 HTTP服務(wù)器和 CGI 編程技術(shù)上成長起來的。IBM 將提供 WebSphere 產(chǎn)品系列,通過提供綜合資源、可重復(fù)使用的組件、功能強(qiáng)大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸縮運行時環(huán)境,來幫助這些用戶從簡單的 Web 應(yīng)用程序轉(zhuǎn)移到電子商務(wù)世界。

    BEA WebLogic

    BEA WebLogic Server 是一種多功能、基于標(biāo)準(zhǔn)的web應(yīng)用服務(wù)器,為企業(yè)構(gòu)建自己的應(yīng)用提供了堅實的基礎(chǔ)。各種應(yīng)用開發(fā)、部署所有關(guān)鍵性的任務(wù),無論是集成各種系統(tǒng)和數(shù)據(jù)庫,還是提交服務(wù)、跨 Internet 協(xié)作,起始點都是 BEA WebLogic Server。由于 它具有全面的功能、對開放標(biāo)準(zhǔn)的遵從性、多層架構(gòu)、支持基于組件的開發(fā),基于 Internet 的企業(yè)都選擇它來開發(fā)、部署最佳的應(yīng)用。

    BEA WebLogic Server 在使應(yīng)用服務(wù)器成為企業(yè)應(yīng)用架構(gòu)的基礎(chǔ)方面繼續(xù)處于領(lǐng)先地位。BEA WebLogic Server 為構(gòu)建集成化的企業(yè)級應(yīng)用提供了穩(wěn)固的基礎(chǔ),它們以 Internet 的容量和速度,在連網(wǎng)的企業(yè)之間共享信息、提交服務(wù),實現(xiàn)協(xié)作自動化。

    APACHE

    apache仍然是世界上用的最多的Web服務(wù)器,市場占有率達(dá)60%左右。它源于NCSAhttpd服務(wù)器,當(dāng)NCSA WWW服務(wù)器項目停止后,那些使用NCSA WWW服務(wù)器的人們開始交換用于此服務(wù)器的補(bǔ)丁,這也是apache名稱的由來(pache 補(bǔ)丁)。世界上很多著名的網(wǎng)站都是Apache的產(chǎn)物,它的成功之處主要在于它的源代碼開放、有一支開放的開發(fā)隊伍、支持跨平臺的應(yīng)用(可以運行在幾乎所有的Unix、Windows、Linux系統(tǒng)平臺上)以及它的可移植性等方面。

    Tomcat

    Tomcat是一個開放源代碼、運行servlet和JSP Web應(yīng)用軟件的基于Java的Web應(yīng)用軟件容器。Tomcat Server是根據(jù)servlet和JSP規(guī)范進(jìn)行執(zhí)行的,因此我們就可以說Tomcat Server也實行了Apache-Jakarta規(guī)范且比絕大多數(shù)商業(yè)應(yīng)用軟件服務(wù)器要好。

    Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技術(shù)的標(biāo)準(zhǔn)實現(xiàn),是基于Apache許可證下開發(fā)的自由軟件。Tomcat是完全重寫的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代碼,特別是Apache服務(wù)適配器。隨著Catalina Servlet引擎的出現(xiàn),Tomcat第四版號的性能得到提升,使得它成為一個值得考慮的Servlet/JSP容器,因此目前許多WEB服務(wù)器都是采用Tomcat。

    編輯本段小型WEB服務(wù)器

    【 micro_httpd - really small HTTP server】

    特點:

    * 支持安全的 .. 上級目錄過濾

    * 支持通用的MIME類型

    * 支持簡單的目錄

    * 支持目錄列表

    * 支持使用 index.html 作為首頁

    * Trailing-slash redirection

    * 程序總共代碼才200多行

    這個httpd適合學(xué)習(xí)簡單的Web Server編寫學(xué)習(xí),因為它只有一個簡單的框架,只能夠處理簡單的靜態(tài)頁,可以考慮用來放靜態(tài)頁。

    官方地址:http://www.acme.com/software/micro_httpd/

    下載地址:http://www.acme.com/software/micro_httpd/micro_httpd_12dec2005.tar.gz

    【 mini_httpd - small HTTP server 】

    特點:

    * 支持GET、HEAD、POST方法

    * 支持CGI功能

    * 支持基本的驗證功能

    * 支持安全 .. 上級目錄功能

    * 支持通用的MIME類型

    * 支持目錄列表功能

    * 支持使用 index.html, index.htm, index.cgi 作為首頁

    * 支持多個根目錄的虛擬主機(jī)

    * 支持標(biāo)準(zhǔn)日志記錄

    * 支持自定義錯誤頁

    * Trailing-slash redirection

    mini_httpd 也是相對比較適合學(xué)習(xí)使用,大體實現(xiàn)了一個Web Server的功能,支持靜態(tài)頁和CGI,能夠用來放置一些個人簡單的東西,不適宜投入生產(chǎn)使用。

    官方地址:http://www.acme.com/software/thttpd/

    下載地址:http://www.acme.com/software/mini_httpd/mini_httpd-1.19.tar.gz

    【 thttpd - tiny/turbo/throttling HTTP server 】

    thttpd中是一個簡單,小型,輕便,快速和安全的http服務(wù)器.

    簡單:它能夠支持HTTP/1.1協(xié)議標(biāo)準(zhǔn),或者超過了最低水平

    小巧:它具有非常少的運行時間,因為它不fork子進(jìn)程來接受新請求,并且非常謹(jǐn)慎的分配內(nèi)存(性能對比表:http://www.acme.com/software/thttpd/benchmarks.html)

    便攜:它能夠在大部分的類Unix系統(tǒng)上運行,包括FreeBSD, SunOS 4, Solaris 2, BSD/OS, Linux, OSF等等

    快速:它的速度要超過主流的Web服務(wù)器(Apache, NCSA, Netscape),在高負(fù)載情況下,它要快的多

    安全:它努力的保護(hù)主機(jī)不受到攻擊,不中斷服務(wù)器

    thttpd 類似于lighttpd,對于并發(fā)請求不使用fork()來派生子進(jìn)程處理,而是采用多路復(fù)用(Multiplex)技術(shù)來實現(xiàn)。因此效能很好。同時它還有一個特點就是基于URL的文件流量限制,這對于下載的流量控制而言是非常方便的。象Apache就必須使用插件實現(xiàn),效率較thttpd低。

    thttpd跟lighttpd類似,適合靜態(tài)資源類的服務(wù),比如圖片、資源文件、靜態(tài)HTML等等的應(yīng)用,性能應(yīng)該比較好,同時也適合簡單的CGI應(yīng)用的場合。

    官方地址:http://www.acme.com/software/thttpd/

    下載地址:http://www.acme.com/software/thttpd/thttpd-2.25b.tar.gz

    【 lighttpd - light footprint + httpd = LightTPD 】

    Lighttpd是一個德國人領(lǐng)導(dǎo)的開源軟件,其根本的目的是提供一個專門針對高性能網(wǎng)站,安全、快速、兼容性好并且靈活的web server環(huán)境。具有非常低的內(nèi)存開銷,cpu占用率低,效能好,以及豐富的模塊等特點。

    lighttpd 是眾多OpenSource輕量級的web server中較為優(yōu)秀的一個。支持FastCGI, CGI, Auth, 輸出壓縮(output compress), URL重寫, Alias等重要功能,而Apache之所以流行,很大程度也是因為功能豐富,在lighttpd上很多功能都有相應(yīng)的實現(xiàn)了,這點對于apache的用戶是非常重要的,因為遷移到lighttpd就必須面對這些問題。

    實用起來lighttpd確實非常不錯,apache主要的問題是密集并發(fā)下,不斷的fork()和切換,以及較高(相對于 lighttpd而言)的內(nèi)存占用,使系統(tǒng)的資源幾盡枯竭。而lighttpd采用了Multiplex技術(shù),代碼經(jīng)過優(yōu)化,體積非常小,資源占用很低,而且反應(yīng)速度相當(dāng)快。

    利用apache的rewrite技術(shù),將繁重的cgi/fastcgi任務(wù)交給lighttpd來完成,充分利用兩者的優(yōu)點,現(xiàn)在那臺服務(wù)器的負(fù)載下降了一個數(shù)量級,而且反應(yīng)速度也提高了一個甚至是2個數(shù)量級!

    lighttpd 適合靜態(tài)資源類的服務(wù),比如圖片、資源文件、靜態(tài)HTML等等的應(yīng)用,性能應(yīng)該比較好,同時也適合簡單的CGI應(yīng)用的場合。

    官方地址:http://www.lighttpd.net/

    下載地址:http://www.lighttpd.net/download/lighttpd-1.4.16.tar.gz

    【 SHTTPD - Simple HTTPD 】

    Shttpd是另一個輕量級的web server,具有比thttpd更豐富的功能特性,支持CGI, SSL, cookie, MD5認(rèn)證, 還能嵌入(embedded)到現(xiàn)有的軟件里。最有意思的是不需要配置文件! 由于shttpd可以嵌入其他軟件,因此可以非常容易的開發(fā)嵌入式系統(tǒng)的web server,官方網(wǎng)站上稱shttpd如果使用uclibc/dielibc(libc的簡化子集)則開銷將非常非常低。

    特點:

    * 小巧、快速、不膨脹、無需安裝、簡單的40KB的exe文件,隨意運行

    * 支持GET, POST, HEAD, PUT, DELETE 等方法

    * 支持CGI, SSL, SSI, MD5驗證, resumed download, aliases, inetd模式運行

    * 標(biāo)準(zhǔn)日志格式

    * 非常簡單整潔的嵌入式API

    * dietlibc friendly. NOT that friendly to the uClibc (*)

    * 容易定制運行在任意平臺:Windows, QNX, RTEMS, UNIX (*BSD, Solaris, Linux)

    由于shttpd可以輕松嵌入其他程序里,因此shttpd是較為理想的web server開發(fā)原形,開發(fā)人員可以基于shttpd開發(fā)出自己的webserver!

    官方網(wǎng)站:http://shttpd.sourceforge.net/

    下載地址:http://jaist.dl.sourceforge.net/sourceforge/shttpd/shttpd-1.38.tar.gz

    四、如何在IIS中添加ISAPI和CGI限制功能

    對于很多B/S架構(gòu)的用友財務(wù)軟件來說,在IIS中添加ISAPI和CGI限制功能是非常必要的,因為如果在IIS中不添加添加ISAPI和CGI限制功能可能會引起軟件運行過程中報錯,或者直接就登錄不了,暢捷通T+11.51軟件也是一樣的。

    所以首先要保證在IIS安裝時就已經(jīng)勾選了ISAPI和CGI限制功能,然后在對應(yīng)的IIS中啟用ISAPI和CGI限制功能,有時候我們重裝了IIS或者重裝了.NET會造成ISAPI和CGI限制功能丟失或者沒有啟用,所以用友財務(wù)軟件免費下載網(wǎng)站站長認(rèn)為學(xué)習(xí)怎么給IIS添加ISAPI和CGI限制功能?是非常有必要的。

    在學(xué)習(xí)如何給IIS添加ISAPI和CGI限制功能之前,我們首先學(xué)習(xí)幾個概念,分別是:ISAPI 服務(wù)器擴(kuò)展、ISAPI篩選器、公共網(wǎng)關(guān)接口CGI。

    ISAPI 服務(wù)器擴(kuò)展是可以被 HTTP 服務(wù)器加載和調(diào)用的 DLL。Internet 服務(wù)器擴(kuò)展也稱為 Internet 服務(wù)器應(yīng)用程序 (ISA),用于增強(qiáng)符合 Internet 服務(wù)器 API (ISAPI) 的服務(wù)器的功能。ISA 通過瀏覽器應(yīng)用程序調(diào)用,并且將相似的功能提供給通用網(wǎng)關(guān)接口 (CGI) 應(yīng)用程序。

    ISAPI篩選器是在啟用 ISAPI 的 HTTP服務(wù)器上運行的 DLL,用以篩選與服務(wù)器之間來回傳送的數(shù)據(jù)。該篩選器注冊事件的通知,例如登錄或 URL 映射。當(dāng)發(fā)生選定事件時,篩選器被調(diào)用,并且您可以監(jiān)視及更改數(shù)據(jù)(在數(shù)據(jù)從服務(wù)器傳輸?shù)娇蛻舳嘶蛳喾吹倪^程中)??梢允褂?ISAPI篩選器提供增強(qiáng)的 HTTP 請求記錄(例如,跟蹤登錄到服務(wù)器的用戶)、自定義加密、自定義壓縮或其他身份驗證方法。

    公共網(wǎng)關(guān)接口CGI(Common Gateway Interface) 是WWW技術(shù)中最重要的技術(shù)之一,有著不可替代的重要地位。CGI是外部應(yīng)用程序(CGI程序)與Web服務(wù)器之間的接口標(biāo)準(zhǔn),是在CGI程序和Web服務(wù)器之間傳遞信息的規(guī)程。CGI規(guī)范允許Web服務(wù)器執(zhí)行外部程序,并將它們的輸出發(fā)送給Web瀏覽器,CGI將Web的一組簡單的靜態(tài)超媒體文檔變成一個完整的新的交互式媒體。

    暢捷通T+軟件在運行時,必須在ISAPI和CGI限制功能中允許.NET 4.0相應(yīng)的ISAPI和CGI的DLL組件運行。ISAPI和CGI限制功能在ISS7.0(windows7操作系統(tǒng)和windows server 2008 R2操作系統(tǒng))開始才有。

    1、允許ISAPI和CGI限制功能中允許.NET 4.0相應(yīng)的ISAPI和CGI的DLL組件運行操作步驟如下:

    (1)點擊“開始”-“運行”-輸入“inetmgr” 如下圖所示:(windows7操作系統(tǒng)也可以通過:右擊計算機(jī),管理,服務(wù)和應(yīng)用程序,internet信息服務(wù)(IIS)管理器)

    (2)選中IIS根路徑,如下圖所示,在“功能”視圖中,雙擊“ISAPI 和 CGI 限制”,如下圖所示:

    (3)依次右擊 ASP.NET v4.0.30319 選擇“允許”,然后再在“開始”-“運行”中輸入 IISRESET 重啟IIS服務(wù)。

    2、在ISAPI和CGI限制功能中添加ISAPI和CGI的DLL組件

    有可能會出現(xiàn)在ISAPI和CGI限制功能中沒有ASP.NET v4.0.30319對應(yīng)的ISAPI和CGI的DLL組件允許項,我們應(yīng)該進(jìn)行如下操作:

    (1)點擊“開始”-“運行”-輸入“inetmgr”,選中IIS根路徑,如下圖所示,在“功能”視圖中,雙擊“ISAPI 和 CGI 限制”先點擊“操作”窗格中單擊“添加”。

    b、在“添加 ISAPI 和 CGI 限制”對話框中,描述處輸入:ASP.NET v4.0.30319,ISAPI或CGI路徑處選擇:%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll;同時勾選允許擴(kuò)展路徑,點擊“確定”。

    c、按同樣的方法添加,描述為:ASP.NET v4.0.30319,ISAPI或CGI路徑為:%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll;同樣勾選允許擴(kuò)展路徑,點擊“確定”。

    注意:如果添加時不選允許擴(kuò)展路徑,則限制狀態(tài)將為“不允許”,這是默認(rèn)狀態(tài)。我們也可以在添加后,右擊ASP.NET V4.0.30319,選擇“允許”即可。

    2、由于T+軟件在運行時,需要調(diào)用IASPI擴(kuò)展,所以我們在安裝IIS時,一定要注意勾選 ISAPI擴(kuò)展,否則T+軟件無法正常運行。

    以上就是關(guān)于web服務(wù)器通過什么執(zhí)行外部程序相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    wwe公司收入排行榜(wwe公司收入排行榜)

    web服務(wù)器是什么服務(wù)器(web服務(wù)器是什么服務(wù)器)

    免費javaweb源碼(學(xué)java學(xué)費大概是多少)

    景觀設(shè)計平面圖線稿(景觀設(shè)計平面圖線稿手繪)

    新東方的語文課怎么樣(新東方的語文到底好不好)