WEB服務(wù)器實(shí)驗(yàn)報告_第1頁
WEB服務(wù)器實(shí)驗(yàn)報告_第2頁
WEB服務(wù)器實(shí)驗(yàn)報告_第3頁
WEB服務(wù)器實(shí)驗(yàn)報告_第4頁
WEB服務(wù)器實(shí)驗(yàn)報告_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、WEB服務(wù)器實(shí)驗(yàn)報告一、什么是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ù)。正是因?yàn)橛辛薟WW工具,才使得近年來 Internet 迅速發(fā)展,且用戶數(shù)量飛速增長。 1、WWW簡介 WWW 是 World Wide Web (環(huán)球信息網(wǎng))的縮寫,也可以簡稱為 Web,中文名字為“萬

2、維網(wǎng)”。它起源于1989年3月,由歐洲量子物理實(shí)驗(yàn)室 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ā)展和特點(diǎn) 長期以來,人們只是通過傳統(tǒng)的媒體(如電視、報紙、雜志和廣播等)獲得信息。但隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,人們想要獲

3、取信息,已不再滿足于傳統(tǒng)媒體那種單方面?zhèn)鬏敽瞳@取的方式,而希望有一種主觀的選擇性?,F(xiàn)在,網(wǎng)絡(luò)上提供各種類別的數(shù)據(jù)庫系統(tǒng),如文獻(xiàn)期刊、產(chǎn)業(yè)信息、氣象信息、論文檢索等等。由于計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,信息的獲取變得非常及時、迅速和便捷。 到了1993年,WWW 的技術(shù)有了突破性的進(jìn)展,它解決了遠(yuǎn)程信息服務(wù)中的文字顯示、數(shù)據(jù)連接以及圖像傳遞的問題,使得 WWW 成為 Internet 上最為流行的信息傳播方式。 現(xiàn)在,Web 服務(wù)器成為 Internet 上最大的計(jì)算機(jī)群,Web 文檔之多、鏈接的網(wǎng)絡(luò)之廣,令人難以想象??梢哉f,Web 為 Internet 的普及邁出了開創(chuàng)性的一步,是近年來 Interne

4、t 上取得的最激動人心的成就。 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)。確切一點(diǎn),你可以說:Web服務(wù)器專門處理HTTP請求(request),但是應(yīng)用程序服務(wù)器是通過很

5、多協(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

6、 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)程序和返回(程序所

7、產(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)來實(shí)現(xiàn)容錯性(fault tolerance)和可擴(kuò)展性(scalability),例如負(fù)載平衡(load balancing),緩沖(caching)。集群特征(clusteringfeatures)經(jīng)常被誤認(rèn)為僅僅是應(yīng)用程序服務(wù)器專有

8、的特征。 應(yīng)用程序服務(wù)器(The Application Server) 根據(jù)我們的定義,作為應(yīng)用程序服務(wù)器,它通過各種協(xié)議,可以包括HTTP,把商業(yè)邏輯暴露給(expose)客戶端應(yīng)用程序。Web服務(wù)器主要是處理向?yàn)g覽器發(fā)送HTML以供瀏覽,而應(yīng)用程序服務(wù)器提供訪問商業(yè)邏輯的途徑以供客戶端應(yīng)用程序使用。應(yīng)用程序使用此商業(yè)邏輯就象你調(diào)用對象的一個方法(或過程語言中的一個函數(shù))一樣。 應(yīng)用程序服務(wù)器的客戶端(包含有圖形用戶界面(GUI)的)可能會運(yùn)行在一臺PC、一個Web服務(wù)器或者甚至是其它的應(yīng)用程序服務(wù)器上。在應(yīng)用程序服務(wù)器與其客戶端之間來回穿梭(traveling)的信息不僅僅局限于簡單的顯

9、示標(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

10、duties)包括安全(security),事務(wù)處理(transaction processing),資源池(resource pooling), 和消息(messaging)。就象Web服務(wù)器一樣,應(yīng)用程序服務(wù)器配置了多種可擴(kuò)展(scalability)和容錯(fault tolerance)技術(shù)。 例如,設(shè)想一個在線商店(網(wǎng)站)提供實(shí)時定價(real-time pricing)和有效性(availability)信息。這個站點(diǎn)(site)很可能會提供一個表單(form)讓你來選擇產(chǎn)品。當(dāng)你提交查詢(query)后,網(wǎng)站會進(jìn)行查找(lookup)并把結(jié)果內(nèi)嵌在HTML頁面中返回。網(wǎng)站可以有很

11、多種方式來實(shí)現(xiàn)這種功能。我要介紹一個不使用應(yīng)用程序服務(wù)器的情景和一個使用應(yīng)用程序服務(wù)器的情景。觀察一下這兩中情景的不同會有助于你了解應(yīng)用程序服務(wù)器的功能。 情景1:不帶應(yīng)用程序服務(wù)器的Web服務(wù)器 在此種情景下,一個Web服務(wù)器獨(dú)立提供在線商店的功能。Web服務(wù)器獲得你的請求(request),然后發(fā)送給服務(wù)器端(server-side)可以處理請求(request)的程序。此程序從數(shù)據(jù)庫或文本文件(flat file,譯者注:flat file是指沒有特殊格式的非二進(jìn)制的文件,如properties和XML文件等)中查找定價信息。一旦找到,服務(wù)器端(server-side)程序把結(jié)果信息表示

12、成(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ù)然后

13、表示為(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)用程序之中該定價(查找)邏輯的

14、可重用性更強(qiáng)了。其他的客戶端,例如收款機(jī),也可以調(diào)用同樣的服務(wù)(service)來作為一個店員給客戶結(jié)帳。相反,在情景1中的定價查找服務(wù)是不可重用的因?yàn)樾畔?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)(res

15、ponse)的能力與以前的應(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ù)器獨(dú)立配置,和應(yīng)用程序服務(wù)器一前一后。這種功能的分離有助于提高性能(簡單的Web請求(request)就不會影響應(yīng)用程序服務(wù)器了),分開配置(專門的Web服務(wù)器,集群(clusterin

16、g)等等),而且給最佳產(chǎn)品的選取留有余地。二、適用的web服務(wù)器小的應(yīng)用程序可以直接記住,系統(tǒng)地、嚴(yán)密地加以考慮,以證明它們的安全性或可伸縮性。小型 Web 服務(wù)器包括: Cheetah Server,用不到一千行的 C 代碼編寫而成。 DustMote,一個非常 小的 Web 服務(wù)器,用一個大約 3000 字節(jié)的 Tcl 源文件實(shí)現(xiàn)。 fnord,大小取決于平臺和配置,不超過 20K。雖然很小,但是它支持虛擬主機(jī)、CGI和 keep-alive。 ihttpd,使用不到 800 行的 C 代碼,包括 CGI,并通過 inetd提供頁面。 im-httpd,非常小的服務(wù)器 只有大約 7 KB,

17、鏈接到 glibc。而且它也非常快。 mattows,支持 CGI,只有 600 行 C 代碼。 Scrinchy,雖然很小,不到 30KB,但是支持多種腳本編制語言,包括一種特殊用途的、基于棧的 Sy 腳本語言。 ZWS 演示了一個即使是使用 500 多行帶足夠注釋的 zsh (!) 編寫的應(yīng)用程序 在這里是一個 HTTP 0.9+ 服務(wù)器 也可以有多強(qiáng)大。 體積小并不妨礙這些服務(wù)器被正式使用。例如,fnord 可以處理數(shù)千個同時進(jìn)行的連接。 也許輕量級作為一個類別最令人印象深刻的成就是高性能服務(wù)器: cghttpd 是一個小型 Web 服務(wù)器,它被理解為使用 2.6 系列內(nèi)核中可用的異步功

18、能的一個試驗(yàn)品。 darkhttpd 是一個快速的、單線程的 HTTP/1.1 服務(wù)器。 Gatling 是為高性能設(shè)計(jì)的。它的特性包括 FTP、IPv6、虛擬主機(jī)、CGI 等。 Kernux 是一個 Linux內(nèi)核模塊,它實(shí)現(xiàn)了一個 HTTP 守護(hù)進(jìn)程。 lighttpd 是使用率排名第五的 Web 服務(wù)器(排名還在上升)。它為很多同時進(jìn)行的連接進(jìn)行了優(yōu)化:“典型的場景是使用 lighttpd 作為一個下載(off-load)服務(wù)器,以提供靜態(tài)內(nèi)容” LiteSpeed Web Server 是一款輕量級商業(yè) Web 服務(wù)器,強(qiáng)調(diào)性能和安全性。LiteSpeed Technologies 公

19、司宣傳為靜態(tài)內(nèi)容提速了 6 倍,在解釋頁面方面也有一定的提高。 Miniature JWS,也稱 tjws,它是基于 Java 的 Web 服務(wù)器,可以處理servlet、JSP和數(shù)千個并發(fā)連接,而大小只有 77 KB。它的作者聲稱它 “比 Apache 2.x 快 10%”。 Yaws 是用 Erlang 編寫的一款高性能 HTTP/1.1 服務(wù)器。 有些 Web 服務(wù)器被實(shí)現(xiàn)為類或庫,以便嵌入到較大的應(yīng)用程序中。 在這些 Web 服務(wù)器當(dāng)中,我發(fā)現(xiàn)特別有趣的有: EHS “嵌入式HTTP 服務(wù)器”,被設(shè)計(jì)為一個 C+類,用于嵌入到較大的 C+ 應(yīng)用程序;還有 Embedded TCL We

20、b Server,它是一個很普通的 Web 服務(wù)器,支持 SSL和 Basic Authentication,速度非常快 其作者使它至少與 lighthttpd 和 AOLserver 一樣快。它是用不到 100 行 Tcl 編寫的。 Python 是幾種適合不尋常環(huán)境的 Web 服務(wù)器的實(shí)現(xiàn)語言,這些 Web 服務(wù)器包括: cdServer 是一個小型的、用 Python 編寫的 HTTP 服務(wù)器,它“被設(shè)計(jì)用來提供來自 CD-ROM 的(靜態(tài))內(nèi)容” 。它在提供動態(tài)內(nèi)容方面能力有限。我們有幾個涉及不受影響的“l(fā)ive CDs” 的項(xiàng)目,在這些項(xiàng)目中像 cdServer 之類的工具很關(guān)鍵。

21、edna,一款智能的用 Python 編寫的 MP3 服務(wù)器,它是用 HTTP 實(shí)現(xiàn)的。 還有其他一些用 Perl 和其他不出名的語言編寫的輕量級 Web 服務(wù)器: Camlserv,用 ocaml 編寫的一個完整的 Web 服務(wù)器,目標(biāo)是 “高度交互式的 Web 頁面”。它由幾千行 ocaml 編寫而成,其中大部分代碼都與 MySQL和 HTML 的特殊處理有關(guān)。 dhttpd 用和 Apache 相同的格式記錄訪問。它支持 CGI,并具有內(nèi)建的 Perl 解釋器、虛擬主機(jī)、IPv6、帶寬管理和安全性等方面的特性。 DNHTTPD 是用 Perl 編寫的,用于 UNIX。它支持虛擬主機(jī)、SS

22、L 連接、CGI 等。 Jellybean 是用 Perl 編寫的基于 HTTP 的 Perl Object Server。 lns.http 是一個 Common LISP HTTP/1.1 Web 框架。 Mongrel 是用 Ruby編寫的、用于 HTTP 的一個庫和服務(wù)器。 Nanoweb 是用 PHP編寫的一款快速、健壯的 Web 服務(wù)器。它宣稱具有豐富的特性,包括完全遵從 HTTP/1.1、訪問控制、身份驗(yàn)證、虛擬主機(jī)、SSL 兼容性等。 Naridesh 是用 Perl 編寫的 Web 服務(wù)器。 OpenAngel 是用 Perl 編寫的。它強(qiáng)調(diào)的重點(diǎn)是安全性。 Xavante 是用 Lua 編寫的 HTTP/1.1 Web 服務(wù)器。 XSP 是用 C# 編寫的,用于運(yùn)行 ASP.NET。 有時候您可能需要其他一些用 C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論