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

下载本文档

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

文档简介

1、WEB服务器实验报告一、什么是WEB服务器WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 (1)应用层使用HTTP协议。 (2)HTML文档格式。 (3)浏览器统一资源定位器(URL)。 WWW代表万维网的意思 WWW 是 Internet 的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。正是因为有了WWW工具,才使得近年来 Internet 迅速发展,且用户数量飞速增长。 1、WWW简介 WWW 是 World Wide Web (环球信息网)的缩写,也可以简称为 Web,中文名字为“万

2、维网”。它起源于1989年3月,由欧洲量子物理实验室 CERN(the European Laboratory for Particle Physics)所发展出来的主从结构分布式超媒体系统。通过万维网,人们只要通过使用简单的方法,就可以很迅速方便地取得丰富的信息资料。 由于用户在通过 Web 浏览器访问信息资源的过程中,无需再关心一些技术性的细节,而且界面非常友好,因而 Web 在Internet 上一推出就受到了热烈的欢迎,走红全球,并迅速得到了爆炸性的发展。 2、WWW的发展和特点 长期以来,人们只是通过传统的媒体(如电视、报纸、杂志和广播等)获得信息。但随着计算机网络的发展,人们想要获

3、取信息,已不再满足于传统媒体那种单方面传输和获取的方式,而希望有一种主观的选择性。现在,网络上提供各种类别的数据库系统,如文献期刊、产业信息、气象信息、论文检索等等。由于计算机网络的发展,信息的获取变得非常及时、迅速和便捷。 到了1993年,WWW 的技术有了突破性的进展,它解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,使得 WWW 成为 Internet 上最为流行的信息传播方式。 现在,Web 服务器成为 Internet 上最大的计算机群,Web 文档之多、链接的网络之广,令人难以想象。可以说,Web 为 Internet 的普及迈出了开创性的一步,是近年来 Interne

4、t 上取得的最激动人心的成就。 WWW 采用的是客户/服务器结构,其作用是整理和储存各种WWW资源,并响应客户端软件的请求,把客户所需的资源传送到 Windows 95(或Windows98)、Windows NT、UNIX 或 Linux 等平台上。 使用最多的 web server 服务器软件 有两个:微软的信息服务器(iis),和Apache。通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很

5、多协议来为应用程序提供(serves)商业逻辑(business logic)。Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active Server

6、 Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。 要知道,Web服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到Web服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求(request)的程序(译者注:服务器端脚本)。Web服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所

7、产生的)响应(response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transaction processing),数据库连接(database connectivity)和消息(messaging)等功能。虽然Web服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略(strategies)来实现容错性(fault tolerance)和可扩展性(scalability),例如负载平衡(load balancing),缓冲(caching)。集群特征(clusteringfeatures)经常被误认为仅仅是应用程序服务器专有

8、的特征。 应用程序服务器(The Application Server) 根据我们的定义,作为应用程序服务器,它通过各种协议,可以包括HTTP,把商业逻辑暴露给(expose)客户端应用程序。Web服务器主要是处理向浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就象你调用对象的一个方法(或过程语言中的一个函数)一样。 应用程序服务器的客户端(包含有图形用户界面(GUI)的)可能会运行在一台PC、一个Web服务器或者甚至是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显

9、示标记。相反,这种信息就是程序逻辑(program logic)。 正是由于这种逻辑取得了(takes)数据和方法调用(calls)的形式而不是静态HTML,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。 在大多数情形下,应用程序服务器是通过组件(component)的应用程序接口(API)把商业逻辑暴露(expose)(给客户端应用程序)的,例如基于J2EE(Java 2 Platform, Enterprise Edition)应用程序服务器的EJB(Enterprise JavaBean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping

10、duties)包括安全(security),事务处理(transaction processing),资源池(resource pooling), 和消息(messaging)。就象Web服务器一样,应用程序服务器配置了多种可扩展(scalability)和容错(fault tolerance)技术。 例如,设想一个在线商店(网站)提供实时定价(real-time pricing)和有效性(availability)信息。这个站点(site)很可能会提供一个表单(form)让你来选择产品。当你提交查询(query)后,网站会进行查找(lookup)并把结果内嵌在HTML页面中返回。网站可以有很

11、多种方式来实现这种功能。我要介绍一个不使用应用程序服务器的情景和一个使用应用程序服务器的情景。观察一下这两中情景的不同会有助于你了解应用程序服务器的功能。 情景1:不带应用程序服务器的Web服务器 在此种情景下,一个Web服务器独立提供在线商店的功能。Web服务器获得你的请求(request),然后发送给服务器端(server-side)可以处理请求(request)的程序。此程序从数据库或文本文件(flat file,译者注:flat file是指没有特殊格式的非二进制的文件,如properties和XML文件等)中查找定价信息。一旦找到,服务器端(server-side)程序把结果信息表示

12、成(formulate)HTML形式,最后Web服务器把会它发送到你的Web浏览器。 简而言之,Web服务器只是简单的通过响应(response)HTML页面来处理HTTP请求(request)。 情景2:带应用程序服务器的Web服务器 情景2和情景1相同的是Web服务器还是把响应(response)的产生委托(delegates)给脚本(译者注:服务器端(server-side)程序)。然而,你可以把查找定价的商业逻辑(business logic)放到应用程序服务器上。由于这种变化,此脚本只是简单的调用应用程序服务器的查找服务(lookup service),而不是已经知道如何查找数据然后

13、表示为(formulate)一个响应(response)。 这时当该脚本程序产生HTML响应(response)时就可以使用该服务的返回结果了。 在此情景中,应用程序服务器提供(serves)了用于查询产品的定价信息的商业逻辑。(服务器的)这种功能(functionality)没有指出有关显示和客户端如何使用此信息的细节,相反客户端和应用程序服务器只是来回传送数据。当有客户端调用应用程序服务器的查找服务(lookup service)时,此服务只是简单的查找并返回结果给客户端。 通过从响应产生(response-generating)HTML的代码中分离出来,在应用程序之中该定价(查找)逻辑的

14、可重用性更强了。其他的客户端,例如收款机,也可以调用同样的服务(service)来作为一个店员给客户结帐。相反,在情景1中的定价查找服务是不可重用的因为信息内嵌在HTML页中了。 总而言之,在情景2的模型中,在Web服务器通过回应HTML页面来处理HTTP请求(request),而应用程序服务器则是通过处理定价和有效性(availability)请求(request)来提供应用程序逻辑的。 警告(Caveats) 现在,XML Web Services已经使应用程序服务器和Web服务器的界线混淆了。通过传送一个XML有效载荷(payload)给服务器,Web服务器现在可以处理数据和响应(res

15、ponse)的能力与以前的应用程序服务器同样多了。 另外,现在大多数应用程序服务器也包含了Web服务器,这就意味着可以把Web服务器当作是应用程序服务器的一个子集(subset)。虽然应用程序服务器包含了Web服务器的功能,但是开发者很少把应用程序服务器部署(deploy)成这种功能(capacity)(译者注:这种功能是指既有应用程序服务器的功能又有Web服务器的功能)。相反,如果需要,他们通常会把Web服务器独立配置,和应用程序服务器一前一后。这种功能的分离有助于提高性能(简单的Web请求(request)就不会影响应用程序服务器了),分开配置(专门的Web服务器,集群(clusterin

16、g)等等),而且给最佳产品的选取留有余地。二、适用的web服务器小的应用程序可以直接记住,系统地、严密地加以考虑,以证明它们的安全性或可伸缩性。小型 Web 服务器包括: Cheetah Server,用不到一千行的 C 代码编写而成。 DustMote,一个非常 小的 Web 服务器,用一个大约 3000 字节的 Tcl 源文件实现。 fnord,大小取决于平台和配置,不超过 20K。虽然很小,但是它支持虚拟主机、CGI和 keep-alive。 ihttpd,使用不到 800 行的 C 代码,包括 CGI,并通过 inetd提供页面。 im-httpd,非常小的服务器 只有大约 7 KB,

17、链接到 glibc。而且它也非常快。 mattows,支持 CGI,只有 600 行 C 代码。 Scrinchy,虽然很小,不到 30KB,但是支持多种脚本编制语言,包括一种特殊用途的、基于栈的 Sy 脚本语言。 ZWS 演示了一个即使是使用 500 多行带足够注释的 zsh (!) 编写的应用程序 在这里是一个 HTTP 0.9+ 服务器 也可以有多强大。 体积小并不妨碍这些服务器被正式使用。例如,fnord 可以处理数千个同时进行的连接。 也许轻量级作为一个类别最令人印象深刻的成就是高性能服务器: cghttpd 是一个小型 Web 服务器,它被理解为使用 2.6 系列内核中可用的异步功

18、能的一个试验品。 darkhttpd 是一个快速的、单线程的 HTTP/1.1 服务器。 Gatling 是为高性能设计的。它的特性包括 FTP、IPv6、虚拟主机、CGI 等。 Kernux 是一个 Linux内核模块,它实现了一个 HTTP 守护进程。 lighttpd 是使用率排名第五的 Web 服务器(排名还在上升)。它为很多同时进行的连接进行了优化:“典型的场景是使用 lighttpd 作为一个下载(off-load)服务器,以提供静态内容” LiteSpeed Web Server 是一款轻量级商业 Web 服务器,强调性能和安全性。LiteSpeed Technologies 公

19、司宣传为静态内容提速了 6 倍,在解释页面方面也有一定的提高。 Miniature JWS,也称 tjws,它是基于 Java 的 Web 服务器,可以处理servlet、JSP和数千个并发连接,而大小只有 77 KB。它的作者声称它 “比 Apache 2.x 快 10%”。 Yaws 是用 Erlang 编写的一款高性能 HTTP/1.1 服务器。 有些 Web 服务器被实现为类或库,以便嵌入到较大的应用程序中。 在这些 Web 服务器当中,我发现特别有趣的有: EHS “嵌入式HTTP 服务器”,被设计为一个 C+类,用于嵌入到较大的 C+ 应用程序;还有 Embedded TCL We

20、b Server,它是一个很普通的 Web 服务器,支持 SSL和 Basic Authentication,速度非常快 其作者使它至少与 lighthttpd 和 AOLserver 一样快。它是用不到 100 行 Tcl 编写的。 Python 是几种适合不寻常环境的 Web 服务器的实现语言,这些 Web 服务器包括: cdServer 是一个小型的、用 Python 编写的 HTTP 服务器,它“被设计用来提供来自 CD-ROM 的(静态)内容” 。它在提供动态内容方面能力有限。我们有几个涉及不受影响的“live CDs” 的项目,在这些项目中像 cdServer 之类的工具很关键。

21、edna,一款智能的用 Python 编写的 MP3 服务器,它是用 HTTP 实现的。 还有其他一些用 Perl 和其他不出名的语言编写的轻量级 Web 服务器: Camlserv,用 ocaml 编写的一个完整的 Web 服务器,目标是 “高度交互式的 Web 页面”。它由几千行 ocaml 编写而成,其中大部分代码都与 MySQL和 HTML 的特殊处理有关。 dhttpd 用和 Apache 相同的格式记录访问。它支持 CGI,并具有内建的 Perl 解释器、虚拟主机、IPv6、带宽管理和安全性等方面的特性。 DNHTTPD 是用 Perl 编写的,用于 UNIX。它支持虚拟主机、SS

22、L 连接、CGI 等。 Jellybean 是用 Perl 编写的基于 HTTP 的 Perl Object Server。 lns.http 是一个 Common LISP HTTP/1.1 Web 框架。 Mongrel 是用 Ruby编写的、用于 HTTP 的一个库和服务器。 Nanoweb 是用 PHP编写的一款快速、健壮的 Web 服务器。它宣称具有丰富的特性,包括完全遵从 HTTP/1.1、访问控制、身份验证、虚拟主机、SSL 兼容性等。 Naridesh 是用 Perl 编写的 Web 服务器。 OpenAngel 是用 Perl 编写的。它强调的重点是安全性。 Xavante 是用 Lua 编写的 HTTP/1.1 Web 服务器。 XSP 是用 C# 编写的,用于运行 ASP.NET。 有时候您可能需要其他一些用 C

温馨提示

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

评论

0/150

提交评论