资源描述
简易WEB服务器设计开题报告班级(学号) 姓名 指导老师 一、综述如今,上网已成为最热门话题,通过Internet,我们既能获取信息又能发布信息,而迅速发展的Web技术更是给Internet应用提供了一个很好的发展方向。当今的许多应用都是基于web技术的,如电子商务、视频会议、远程医疗诊断等。WWW 是 World Wide Web (环球信息网)的缩写,也可以简称为 Web,中文名字为“万维网”。它起源于1989年3月,由欧洲量子物理实验室 CERN(the European Laboratory for Particle Physics)所发展出来的主从结构分布式超媒体系统。通过万维网,人们只要通过使用简单的方法,就可以很迅速方便地取得丰富的信息资料。 由于用户在通过 Web 浏览器访问信息资源的过程中,无需再关心一些技术性的细节,界面简单容易操作。长期以来,人们只是通过传统的媒体(如电视、报纸、杂志和广播等)获得信息,但随着计算机网络的发展,人们想要获取信息,已不再满足于传统媒体那种单方面传输和获取的方式,而希望有一种主观的选择性。现在,网络上提供各种类别的数据库系统,如文献期刊、产业信息、气象信息、论文检索等等。由于计算机网络的发展,信息的获取变得非常及时、迅速和便捷。 到了1993年,WWW 的技术有了突破性的进展,它解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,使得 WWW 成为 Internet 上最为流行的信息传播方式。 现在,Web 服务器成为 Internet 上最大的计算机群,可以说,Web 为 Internet 的普及迈出了开创性的一步, WWW 采用的是客户/服务器结构,其作用是整理和储存各种WWW资源,并响应客户端软件的请求,把客户所需的资源传送到Windows NT、UNIX 或 Linux 等平台上。下图显示了星型和拓扑的网络连接:目前在市场上有20到30种Web应用服务器,每种服务器在实现对象组件支持、分布式计算、部署的速度和易用程度上采取了不同方式。 目前市场上主流Web服务器主要有以下几种产品:1Apache,由SUN公司开发的Apache服务器可以运行在包括Linux等多种系统平台之上。Apache支持许多特性,大部分通过编译的模块实现,如很有用的URL重写,定制日志文件以及过滤支持等。2Zeus Webserver3.3.8 服务器,Zeus服务器在SMP (Symmetric Multi Processing的简称,意为对称多处理系统,内有许多紧耦合多处理器,这种系统的最大特点就是共享所有资源) 环境下有优秀的可伸缩性,并实现了常见的特性集合,如访问控制、动态内容产生和安全等。3. iPlanet Enterprise Edition 4.1,Netscape公司开发的iPlanet具有现今高性能WEB服务器的特性,如具有很高的可靠性、可用性、可维护性,系统高度可扩展性等特点,相对其它WEB服务器iPlanet还提供更多的JAVA功能。4AOLserver 3.3.1 ,AOL公司开发的AOLserver 3.3.1是一个多线程、可升级和扩展的WEB服务器。5. Roxen WebServer 2.1.31,在Roxen中可以使用RXML语言生成动态网页内容。RXML是函数形式的服务器端XML脚本语言,它由Roxen服务器解析并执行。6. Jigsaw,它由WWW组织(W3C)开发,W3C组织负责研究和规定网络协议的标准(如HTTP)。它使用JAVA语言开发,是成功的面向对象、功能全面的服务器。因为Jigsaw不受测试平台的限制,所以Jigsaw是一个具有活力的、拥有无限潜能的优秀WEB服务器。在嵌入式系统的应用中,由于HTMI 语言的标准统一性,只要在设备里建立一个微型web服务器,人们就可以使用现有的Web浏览器与该设备进行双向交互、接收或发送信息。它为我们管理、控制和监测各种各样的设备提供了一个很好的途径,只要设备接入了Internet,我们就可以在世界上的任何地方十分方便地控制、操纵那些配备有微型Web服务器的设备。在Internet上为了发布信息,用户必须运行Web服务器程序。但现成的服务器程序有时候不能满足所有人的要求,所以可以动手开发一个自己的Web服务器程序,其功能就可由设计者定制的功能和需求决定了。二、选题依据 设计者工作在技术质量监督部门,主要从事管理和计量检测工作。由于单位部门多,许多通知和材料需要经过复印多次传达,造成许多不必要的麻烦,而单位又采用局域网设置,所以可以设计一个简易的WEB服务器,用来下发通知,表格,文件等,并且以后可以根据需求进一步改进,提高工作效率。三、研究内容本次设计就是需要完成一个简易的WEB服务器的设计,实现web服务器基本功能:页面访问请求响应、HTML文件的解析以及数据发送。所以在完成设计之前,必须先了解WEB服务器设计的原理与结构。一个典型的微型Web服务器的结构可以用图l来描述:Web浏览器通常可以使用流行的IE或者其它的浏览器。服务器端的TCPIP协议是操作系统内嵌的,其信息流符合HTTP协议。服务器中的HTTP引擎用来分析浏览器的请求消息,并根据请求做出相应的动作。这些动作包括向浏览器发送一些静态页面或调用一些应用服务程序。对于服务器中的静态web页面,可以使用一些常用软件如FrontPage等制作,以备Web服务器调用。而服务器中的应用服务程序则用来扩展服务器所提供的服务。从图l中可以看出,微型web服务器的核心就是:HTTP引擎。HTTP协议是一种网络应用层的标准协议,Web浏览器和Web服务器之间的通信都是采用HTTP协议来实现的。因此只要是符合HTTP协议的通讯过程和数据内容,就可以使用浏览器作为客户端进行连接和传递。要完成Web服务,除了网络通信链路的建立和拆除,之外至少还要有二方面的功能:“分折请求” 和“构造响应”。客户端与服务器交换数据之前,首先用TCPIP建立连接,客户端向服务器请求数据,服务器则向客户端响应并提供数据客户端和服务器以HTTP协议进行请求和响应服务器和客户端只能为一次事务处理建立并维持连接,完成一次事务处理后便结束连接每一个客户端向服务器发送请求均以方法(Method)开始,后跟对象的URL客户端一般要在上述信息中补充所采用HTTP协议的版本号,其后跟一个回车换行(CRLF)字符对依据请求情况,浏览器可能在CRLF后加上浏览器按特别的首部格式编码的信息完成后,浏览器给请求加上一个CRLF还可依据请求情况,把一个实体(MIME格式文档)加到整个请求之后一个HTTP方法实际上是一条命令,客户端用它来说明其请求目的,常用的有GET,HEAD和POSTWeb服务器收到请求并解析之后,以一个HTTP响应消息响应客户端的请求这个响应消息通常以HTTP协议版本号开始,后面是三位状态码和一个原因短语(Reason phrase),其后是一个CRLF,再后是请求的信息(它被服务器以一种特殊的首部格式编码),最后,服务器加上一个CRLF其后还可以有一个可选实体状态码是三位数,它描述了服务器理解和满足请求的情况,原因短语是状态代码的一个简短说明HTTP协议版本号、状态代码、原因短语一起构成了状态行上述分析不难看出,接收客户端请求、解析客户端请求、响应客户端请求、向客户端回送请求的结果是Web服务器所需完成的主要任务,Web服务器程序代码主要是为了完成这几项任务一般来说,Web服务器通常由以下几个部分组成:(1)服务器初始化部分这部分主要完成Web服务器的初始化工作,如建立守护进程、创建TCP套接字、绑定端口、将TCP套接字转换成侦听套接字,进入循环结构,等待接收用户浏览器连接(2)接收客户端请求由于客户端请求以文本行的方式实现,所以服务器一般也以文本行为单位接收(3)解析客户端请求这部分工作比较复杂,需要解析出请求的方法、URL目标、可选的查询信息及表单信息如果请求方法为HEAD,则简单地返回响应首部即可;如果方法是GET,则首先返回响应首部,然后将客户端请求的URL目标文件从服务器磁盘上读出,再发送给客户端;如果是POST,则比较麻烦,首先要调用相应的CGI程序,然后将用户表单信息传给CGI程序,CGI程序根据表单内容完成相应的工作,并将结果数据返回(4)发送响应信息之后,关闭与客户机的连接四、实现方法及预期目标在了解WEB服务器的基本结构后,就需要更进一步了解如何实现服务器与协议的连接,那就需要用到WINSOCK,这也是本次设计中的核心与重点。Winsock是一个封装了Winsock API函数的ActiveX控件,它可以被MicrosoftAccess,Visual Basie,Visual C+,LabVIEW等软件调用,实现网络编程。现代计算机利用操作系统在不同通信协议层次上提供的接口实现网络进程安全通信,主要使用软件工程的方法(分层次、分模块等技术)实现。作为网络上公认的事实的通信标准,TCP/IP协议成为现代计算机操作系统通过网络编程实现网络通信的重要部分。而WINSOCK就是服务器与协议间一个必不可少的桥梁,它建立一条可靠的、基于连接的通信接口用Winsock控件编写网络通信程序,不需要了解TCP/IP的具体细节或调用底层Winsock API,通过设置Winsock控件的属性和调用该控件的方法,可以很容易地连接到远程计一算机并进行双向的数据交换,客户机和服务器在该链接上传输数据,客户端发出请求,服务器监听来自客户端的请求,并做出响应服务。 下图就显示了WINSOCK在服务器设计中的作用。 应用程序1应用程序2应用程序n网络程序设计,如Winsock等网络通讯协议,如TCP/IP物理通讯介质操作系统,如Windows通过WINSOCK,利用VC+编程就能基本实现了简易的WEB服务器的设计,并能在window系统下运行良好的运行,实现web服务器基本功能:页面访问请求响应、HTML文件的解析以及数据发送。五、对进度的具体安排第13周 开始调研以及搜集文献资料,进行外文文献翻译。第46周 对要编译的程序的语言进行深入学习,完成界面设计。第78周 应答模块侦听模块设计。第910周 服务器端以及客户端操作 socket,完成设计的50%60% 。第1112周 完成设计的收尾工作,调试系统。第1315周 全部完成本次设计,并完成毕业设计(论文)初稿。第1516周 修改并打印毕业设计(论文),准备答辩。第1617周 毕业设计答辩。六、参考文献1 李大亮,曲波.嵌入式Web服务器的设计与实现J.鞍山科技报,2004,27(2)2 罗惟,王萍.一个web服务器的设计J.现代电子技术,2003,157(14)3 杨阳. 基于URL的Web服务器数据访问J.网络技术,2003,(10)4 刘波涛,郭麦成. 微型WEB服务器的设计与实现J.国外电子测量技, 2004, (1) 5 贾立华,林碧英. 在超文本协议中实现会话的若干方法J.现代电力, 2003, (2) 6 卢成梁. 简易WEB服务器应答模块设计与研究市场周刊J., 2005, (4)7 王茂林贺富强,Socket 在局域网通信中的应用J.2006,(5)8 周小松,朱雄军,基于TCP协议的Socket网络编程模式部署及实现,软件技术研究J,2006(9)9 咏刚,Web开发技术发展史话指导老师: 年 月 日督导老师: 年 月 日领导小组审查意见:审查人签字: 年 月 日5
展开阅读全文