2024年WEB服务器实验报告_第1页
2024年WEB服务器实验报告_第2页
2024年WEB服务器实验报告_第3页
2024年WEB服务器实验报告_第4页
2024年WEB服务器实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WEB服务器试验汇报一、什么是WEB服务器WEB服务器也称為WWW(WORLDWIDEWEB)服务器,重要功能是提供网上信息浏览服务。(1)应用层使用HTTP协议。(2)HTML文档格式。(3)浏览器统一资源定位器(URL)。WWW代表萬维网的意思WWW是Internet的多媒体信息查询工具,是Internet上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。正是由于有了WWW工具,才使得近年来Internet迅速发展,且顾客数量飞速增長。1、WWW简介WWW是WorldWideWeb(环球信息网)的缩写,也可以简称為Web,中文名字為“萬维网”。它来源于1989年3月,由欧洲量子物理试验室CERN(theEuropeanLaboratoryforParticlePhysics)所发展出来的主從构造分布式超媒体系统。通過萬维网,人們只要通過使用简朴的措施,就可以很迅速以便地获得丰富的信息资料。由于顾客在通過Web浏览器访問信息资源的過程中,無需再关怀某些技术性的细节,并且界面非常友好,因而Web在Internet上一推出就受到了热烈的欢迎,走紅全球,并迅速得到了爆炸性的发展。2、WWW的发展和特點長期以来,人們只是通過老式的媒体(如電视、报紙、杂志和广播等)获得信息。但伴随计算机网络的发展,人們想要获取信息,已不再满足于老式媒体那种單方面传播和获取的方式,而但愿有一种主观的选择性。目前,网络上提供多种类别的数据库系统,如文献期刊、产业信息、气象信息、论文检索等等。由于计算机网络的发展,信息的获取变得非常及時、迅速和便捷。到了1993年,WWW的技术有了突破性的進展,它处理了遠程信息服务中的文字显示、数据连接以及图像传递的問題,使得WWW成為Internet上最為流行的信息传播方式。目前,Web服务器成為Internet上最大的计算机群,Web文档之多、链接的网络之广,令人难以想象。可以說,Web為Internet的普及迈出了開创性的一步,是近年来Internet上获得的最激感人心的成就。WWW采用的是客户/服务器构造,其作用是整顿和储存多种WWW资源,并响应客户端软件的祈求,把客户所需的资源传送到Windows95(或Windows98)、WindowsNT、UNIX或Linux等平台上。使用最多的webserver服务器软件有两個:微软的信息服务器(iis),和Apache。通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的措施(methods)。确切一點,你可以說:Web服务器专门处理HTTP祈求(request),不過应用程序服务器是通過诸多协议来為应用程序提供(serves)商业逻辑(businesslogic)。Web服务器可以解析(handles)HTTP协议。當Web服务器接受到一种HTTP祈求(request),會返回一种HTTP响应(response),例如送回一种HTML页面。為了处理一种祈求(request),Web服务器可以响应(response)一种静态页面或图片,進行页面跳转(redirect),或者把動态响应(dynamicresponse)的产生委托(delegate)給某些其他的程序例如CGI脚本,JSP(JavaServerPages)脚本,servlets,ASP(ActiveServerPages)脚本,服务器端(server-side)JavaScript,或者某些其他的服务器端(server-side)技术。無论它們(译者注:脚本)的目的怎样,這些服务器端(server-side)的程序一般产生一种HTML的响应(response)来让浏览器可以浏览。要懂得,Web服务器的代理模型(delegationmodel)非常简朴。當一种祈求(request)被送到Web服务器裏来時,它只單纯的把祈求(request)传递給可以很好的处理祈求(request)的程序(译者注:服务器端脚本)。Web服务器仅仅提供一种可以执行服务器端(server-side)程序和返回(程序所产生的)响应(response)的环境,而不會超過职能范围。服务器端(server-side)程序一般具有事务处理(transactionprocessing),数据库连接(databaseconnectivity)和消息(messaging)等功能。虽然Web服务器不支持事务处理或数据库连接池,但它可以配置(employ)多种方略(strategies)来实現容錯性(faulttolerance)和可扩展性(scalability),例如负载平衡(loadbalancing),缓冲(caching)。集群特性(clustering—features)常常被误认為仅仅是应用程序服务器专有的特性。应用程序服务器(TheApplicationServer)根据我們的定义,作為应用程序服务器,它通過多种协议,可以包括HTTP,把商业逻辑暴露給(expose)客户端应用程序。Web服务器重要是处理向浏览器发送HTML以供浏览,而应用程序服务器提供访問商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就象你调用對象的一种措施(或過程語言中的一种函数)同样。应用程序服务器的客户端(包具有图形顾客界面(GUI)的)也許會运行在一台PC、一种Web服务器或者甚至是其他的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简朴的显示標识。相反,這种信息就是程序逻辑(programlogic)。正是由于這种逻辑获得了(takes)数据和措施调用(calls)的形式而不是静态HTML,因此客户端才可以随心所欲的使用這种被暴露的商业逻辑。在大多数情形下,应用程序服务器是通過组件(component)的应用程序接口(API)把商业逻辑暴露(expose)(給客户端应用程序)的,例如基于J2EE(Java2Platform,EnterpriseEdition)应用程序服务器的EJB(EnterpriseJavaBean)组件模型。此外,应用程序服务器可以管理自已的资源,例如看大门的工作(gate-keepingduties)包括安全(security),事务处理(transactionprocessing),资源池(resourcepooling),和消息(messaging)。就象Web服务器同样,应用程序服务器配置了多种可扩展(scalability)和容錯(faulttolerance)技术。例如,设想一种在线商店(网站)提供实時定价(real-timepricing)和有效性(availability)信息。這個站點(site)很也許會提供一种表單(form)让你来选择产品。當你提交查询(query)後,网站會進行查找(lookup)并把成果内嵌在HTML页面中返回。网站可以有诸多种方式来实現這种功能。我要简介一种不使用应用程序服务器的情景和一种使用应用程序服务器的情景。观测一下這两中情景的不一样會有助于你理解应用程序服务器的功能。情景1:不带应用程序服务器的Web服务器在此种情景下,一种Web服务器独立提供在线商店的功能。Web服务器获得你的祈求(request),然後发送給服务器端(server-side)可以处理祈求(request)的程序。此程序從数据库或文本文献(flatfile,译者注:flatfile是指没有特殊格式的非二進制的文献,如properties和XML文献等)中查找定价信息。一旦找到,服务器端(server-side)程序把成果信息表到达(formulate)HTML形式,最终Web服务器把會它发送到你的Web浏览器。简而言之,Web服务器只是简朴的通過响应(response)HTML页面来处理HTTP祈求(request)。情景2:带应用程序服务器的Web服务器情景2和情景1相似的是Web服务器還是把响应(response)的产生委托(delegates)給脚本(译者注:服务器端(server-side)程序)。然而,你可以把查找定价的商业逻辑(businesslogic)放到应用程序服务器上。由于這种变化,此脚本只是简朴的调用应用程序服务器的查找服务(lookupservice),而不是已經懂得怎样查找数据然後表达為(formulate)一种响应(response)。這時當该脚本程序产生HTML响应(response)時就可以使用该服务的返回成果了。在此情景中,应用程序服务器提供(serves)了用于查询产品的定价信息的商业逻辑。(服务器的)這种功能(functionality)没有指出有关显示和客户端怎样使用此信息的细节,相反客户端和应用程序服务器只是来回传送数据。當有客户端调用应用程序服务器的查找服务(lookupservice)時,此服务只是简朴的查找并返回成果給客户端。通過從响应产生(response-generating)HTML的代码中分离出来,在应用程序之中该定价(查找)逻辑的可重用性更强了。其他的客户端,例如收款机,也可以调用同样的服务(service)来作為一种店员給客户結帐。相反,在情景1中的定价查找服务是不可重用的由于信息内嵌在HTML页中了。综上所述,在情景2的模型中,在Web服务器通過回应HTML页面来处理HTTP祈求(request),而应用程序服务器则是通過处理定价和有效性(availability)祈求(request)来提供应用程序逻辑的。警告(Caveats)目前,XMLWebServices已經使应用程序服务器和Web服务器的界线混淆了。通過传送一种XML有效载荷(payload)給服务器,Web服务器目前可以处理数据和响应(response)的能力与此前的应用程序服务器同样多了。此外,目前大多数应用程序服务器也包括了Web服务器,這就意味著可以把Web服务器當作是应用程序服务器的一种子集(subset)。虽然应用程序服务器包括了Web服务器的功能,不過開发者很少把应用程序服务器布署(deploy)成這种功能(capacity)(译者注:這种功能是指既有应用程序服务器的功能又有Web服务器的功能)。相反,假如需要,他們一般會把Web服务器独立配置,和应用程序服务器一前一後。這种功能的分离有助于提高性能(简朴的Web祈求(request)就不會影响应用程序服务器了),分開配置(专门的Web服务器,集群(clustering)等等),并且給最佳产品的选用留有余地。二、合用的web服务器小的应用程序可以直接记住,系统地、严密地加以考虑,以证明它們的安全性或可伸缩性。小型Web服务器包括:

CheetahServer,用不到一仟行的C代码编写而成。

DustMote,一种非常小的Web服务器,用一种大概3000字节的Tcl源文献实現。

fnord,大小取决于平台和配置,不超過20K。虽然很小,不過它支持虚拟主机、CGI和keep-alive。

ihttpd,使用不到800行的C代码,包括CGI,并通過inetd提供页面。

im-httpd,非常小的服务器——只有大概7KB,链接到glibc。并且它也非常快。

mattows,支持CGI,只有600行C代码。

Scrinchy,虽然很小,不到30KB,不過支持多种脚本编制語言,包括一种特殊用途的、基于栈的Sy脚本語言。

ZWS演示了一种虽然是使用500多行带足够注释的zsh(!)编写的应用程序——在這裏是一种HTTP0.9+服务器——也可以有多强大。体积小并不阻碍這些服务器被正式使用。例如,fnord可以处理数仟個同步進行的连接。

也許轻量级作為一种类别最令人印象深刻的成就是高性能服务器:

cghttpd是一种小型Web服务器,它被理解為使用2.6系列内核中可用的异步功能的一种试验品。

darkhttpd是一种迅速的、單线程的HTTP/1.1服务器。

Gatling是為高性能设计的。它的特性包括FTP、IPv6、虚拟主机、CGI等。

Kernux是一种Linux内核模块,它实現了一种HTTP守护進程。

lighttpd是使用率排名第五的Web服务器(排名還在上升)。它為诸多同步進行的连接進行了优化:“經典的場景是使用lighttpd作為一种下载(off-load)服务器,以提供静态内容……”

LiteSpeedWebServer是一款轻量级商业Web服务器,强调性能和安全性。LiteSpeedTechnologies企业宣传為静态内容提速了6倍,在解释页面方面也有一定的提高。

MiniatureJWS,也称tjws,它是基于Java的Web服务器,可以处理servlet、JSP和数仟個并发连接,而大小只有77KB。它的作者声称它“比Apache2.x快10%”。

Yaws是用Erlang编写的一款高性能HTTP/1.1服务器。

有些Web服务器被实現為类或库,以便嵌入到较大的应用程序中。在這些Web服务器當中,我发現尤其有趣的有:

EHS——“嵌入式HTTP服务器”,被设计為一种C++类,用于嵌入到较大的C++应用程序;尚有

EmbeddedTCLWebServer,它是一种很一般的Web服务器,支持SSL和BasicAuthentication,速度非常快——其作者使它至少与lighthttpd和AOLserver同样快。它是用不到100行Tcl编写的。

Python是几种适合不寻常环境的Web服务器的实現語言,這些Web服务器包括:

cdServer是一种小型的、用Python编写的HTTP服务器,它“被设计用来提供来自CD-ROM的(静态)内容”。它在提供動态内容方面能力有限。我們有几种波及不受影响的“liveCDs”的项目,在這些项目中像cdServer之类的工具很关键。

edna,一款智能的用Python编写的MP3服务器,它是用HTTP实現的。

尚有其他某些用Perl和其他不出名的語言编写的轻量级Web服务器:

Camlserv,用ocaml编写的一种完整的Web服务器,目的是“高度交互式的Web页面”。它由几仟行ocaml编写而成,其中大部分代码都与MySQL和HTML的特殊处理有关。

dhttpd用和Apache相似的格式记录访問。它支持CGI,并具有内建的Perl解释器、虚拟主机、IPv6、带宽管理和安全性等方面的特性。

DNHTTPD是用Perl编写的,用于UNIX。它支持虚拟主机、SSL连接、CGI等。

Jellybean是用Perl编写的基于HTTP的PerlObjectServer。

lns.http是一种CommonLISPHTTP/1.1Web框架。

Mongrel是用Ruby编写的、用于HTTP的一种库和服务器。

Nanoweb是用PHP编写的一款迅速、强健的Web服务器。它宣称具有丰富的特性,包括完全遵從HTTP/1.1、访問控制、身份验证、虚拟主机、SSL兼容性等。

Naridesh是用Perl编写的Web服务器。

OpenAngel是用Perl编写的。它强调的重點是安全性。

Xavante是用Lua编写的HTTP/1.1Web服务器。

XSP是用C#编写的,用于运行ASP.NET。

有時候您也許需要其他某些用C编写的、具有不常見的次要优势的轻量级Web服务器:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论