资源描述
简易WEB服务器设计文献综述摘要本文主要论述了WEB服务器的设计与研究,其中介绍了WEB服务器现况,WEB 服务器的的基本组成,包括服务器端和浏览器端,WEB系统的工作原理,服务器/浏览器的通信模式,以及用VC+和SOCKET完成web服务器基本功能:页面访问请求响应、HTML文件的解析以及数据发送。着重介绍了分析请求和构造响应这两项服务器与浏览器通信所必需的功能。同时,对软件的界面设计、及界面的制作方法、系统托盘程序的制作以及程序编译完成后的调试工作以及编程和软件完成后各种相应问题的解决也做了简单的介绍,另外还对Socket规范的含义,以及socket各种类的组成和操作函数,本次设计的开发工具Visual C+ 6.0做了介绍。并对简易WEB服务器的页面设计,侦听和响应等功能模块的设计以及具体代码实现做了较为详细的介绍。关键词:WEB服务器、WEB服务器端构架、socket、VC+AbstractThis paper mainly talks about researching and designing on a simple web server. In this paper, I give an introduction On Web server status,WEB server of the basic components, include server and browser and how the web system working I also introduce how they communicate between web server and browser,and Completed basic functions of the web server with VC+ and SOCKET : In response to requests for visits to pages, HTML document analysis and data sent.introduction Analysis focused on the request and to respond to these two tectonic server browser with the necessary communications functions.Meanwhile,introduce about software interface design,Interface methods,System tray production process and Compiling procedures after the completion of testing and Programming and software after the completion of a variety of solutions.Then,What is WinSocket, how it is developing, how to write the codes with socket, how to use the develop tool Visual C+ 6.0 are related. Then I talk about how to design page and write the codes of listen and response function modules of web server in detail.introduction Analysis focused on the request and to respond to these two tectonic server browser with the necessary communications functions.Keywords: Web server, WEB server architecture, socket,VC+ 如今,上网已成为最热门话题,通过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 等平台上。迅速发展的Web技术给Internet应用提供了个很好的发展方向。当今的许多应用都是基于web技术的,如电子商务、视频会议、远程医疗诊断等。在嵌入式系统的应用中,由于HTMI 语言的标准统一性,只要在设备里建立一个微型web服务器,人们就可以使用现有的Web浏览器与该设备进行双向交互、接收或发送信息。因此,针对微型web服务器的研究和应用,具有重大的意义,它为我们管理、控制和监测各种各样的设备提供了一个很好的途径一基于Internet,也就是说,只要设备接入了Internet,我们就可以在世界上的任何地方十分方便地控制、操纵那些配备有微型Web服务器的设备。 目前在市场上有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浏览器通常可以使用流行的IE或者其它的浏览器。服务器端的TCPIP协议栈是操作系统内嵌的,其信息流符合HTTP协议。服务器中的HTTP引擎用来分析浏览器的请求消息,并根据请求作出相应的动作。这些动作包括向浏览器发送一些静态页面或调用一些应用服务程序。对于服务器中的静态web页面,可以使用一些常用软件如FrontPage等制作,以备Web服务器调用。而服务器中的应用服务程序则用来扩展服务器所提供的服务。从图l中可以看出,微型web服务器的核心就是:HTTP引擎。 HTTP协议是一种网络应用层的标准协议,Web浏览器和Web服务器之间的通信都是采用HTTP协议来实现的。因此只要是符合HTTP协议的通讯过程和数据内容,就可以使用浏览器作为客户端进行连接和传递。要完成Web服务,除了网络通信链路的建立和拆除,之外至少还要有二方面的功能:“分折请求” 和“构造响应”。客户端与服务器交换数据之前,首先用TCPIP建立连接,客户端向服务器请求数据,服务器则向客户端响应并提供数据客户端和服务器以HTTP协议进行请求和响应服务器和客户端只能为一次事务处理建立并维持连接,完成一次事务处理后便结束连接 一般来说,Web服务器通常由以下几个部分组成:(1)服务器初始化部分这部分主要完成Web服务器的初始化工作,如建立守护进程、创建TCP套接字、绑定端口、将TCP套接字转换成侦听套接字,进入循环结构,等待接收用户浏览器连接(2)接收客户端请求由于客户端请求以文本行的方式实现,所以服务器一般也以文本行为单位接收(3)解析客户端请求这部分工作比较复杂,需要解析出请求的方法、URL目标、可选的查询信息及表单信息如果请求方法为HEAD,则简单地返回响应首部即可;如果方法是GET,则首先返回响应首部,然后将客户端请求的URL目标文件从服务器磁盘上读出,再发送给客户端;如果是POST,则比较麻烦,首先要调用相应的CGI程序,然后将用户表单信息传给CGI程序,CGI程序根据表单内容完成相应的工作,并将结果数据返回(4)发送响应信息之后,关闭与客户机的连接现代计算机利用操作系统在不同通信协议层次上提供的接口实现网络进程安全通信,主要使用软件工程的方法(分层次、分模块等技术)实现。作为网络上公认的事实的通信标准,TCP/IP协议成为现代计算机操作系统通过网络编程实现网络通信的重要部分。而WINSOCK就是服务器与协议间一个必不可少的桥梁,她建立一条可靠的、基于连接的通信接口,客户机和服务器在该链接上传输数据,客户端发出请求,服务器监听来自客户端的请求,并作出响应服务。 Winsock 控件与Sockets完全兼容,是一个专门用于Windows网络编程的Active X控件。它提供了访问TCP和UDP网络服务的方便途径。计算机网络是由一系列网络通信协议组成,其中的核心协议是传输层的TCP/ IP 和UDP 协议,TCP 是面向连接的,UDP 是无连接的,通信双方都不保持对方的状态。Socket 是建立在传输层协议(主要是TCP 和UDP) 上的一种套接字规范,最初是由美国加州Berkley 大学提出,它定义两台计算机间进行通信的规范,如果说两台计算机是利用一个“通道”进行通信,那么这个通道的两端就是两个套接字,套接字屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了TCP 协议软件和实现了套接字规范的计算机之间的通信成为可能。在Windows 网络编程中,套接字接口主要有3种类型:流式套接字,数据报套接字和原始套字。流式套接字定义了一种面向连接的服务,实现了无差错无重复的顺序数据传输,无长度限制。数据报套接字接口定义了一种无连接的服务,数据通过相互独立的报文进行传输,它是无序的,并且不能保证可靠。原始套接字允许对低层协议IP 或ICMP直接访问,主要应用于网络协议的测试。在网络应用中使用最多的是客户/ 服务器模式,主要是采用面向连接的TCP 协议,其典型的套接字接口调用流程如图2 所示。程序中需要用到两个重要的组件,ClientSocket 组件为客户端组件。它是通信的请求方,主动与服务器端建立连接。ServerSocket 组件为服务器端组件,它是通信的响应方,主要是监听以及被动接受客户端的连接请求,并对请求进行回复。ServerSocket 组件可以同时接受一个或多个ClientSocket 组件的连接请求,并与每个ClientSocket组件建立单独的连接,进行单独的通信。因此,一个服务器端可以为多个客户端服务。该程序包括一个服务器端程序和一个客户端程序,其中客户端程序可以放到多个计算机上运行,同时与服务器端进行连接通信。程序主要是解决两个方面的问题,一是如何建立客户端和服务器端的通信;二是当有多个客户端同时连接到服务器端时,服务器端如何识别每个客户端。图2 Socket 通信过程示意通过Socket, 软件的实际运行效果证明这种编程方法简单、可项量靠。通过WinSock可以实现不同计算机各种信息的相互传输及同机中不同进程之间的相互通信,还可实现联网计算机间的远程控制可以成功实现多个客户端和服务器的通信,同时可以保证一个客户端的连接、通信或者是断开的情况下都不影响其它客户端的正常通信。参考文献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开发技术发展史话
展开阅读全文