微型Web服务器的设计与实现
系统分析师
国外电子测量技术 2004年第1期 设计技术
微型Web服务器的设计与实现
刘波涛 郭麦成
西南石油学院计算机科学院(610500)
摘要:微型Web服务器可以看作是由HTTP和HTML构成的,它的功能不需要很全面,但却必须
具备一个Web服务器应有的基本特征。本文指出了在Win98系统下用Delphi6.0设计和实现一种微型Web服务器的方法,文中给出了相应的关键算法和关键结构。
关键词:微型Web服务器 Delphi6.0 超文本传输协议
DesignandRealizationofMicroWebServer
Abstract: ThemostbasicWebServeriscomposedofandfuctionsofa
microWebSeverneedn’http://www.77cn.com.cningDelphi6.0todevelopamicroAndalsoitproposesthekeyalgrithamKeywords:,引言
来描述。
迅速发展的Web技术给Internet应用提供了一个很好的发展方向。当今的许多应用都是基于Web技术的,如电子商务、视频会议、远程医疗诊断等。在嵌入式系统的应用中,由于HTML语言的标准统一性,只要在设备里建立一个微型Web服务器,人们就可以使用现有的Web浏览器与该设备进行双向交互、接收或发送信息。因此,针对微型Web
服务器的研究和应用,具有重大的意义,它为我们管理、控制和监测各种各样的设备提供了一个很好的途径%基于Internet,也就是说,只要设备接入了Internet,我们就可以在世界上的任何地方十分方便地控制、操纵那些配备有微型Web服务器的设备。 本文就Win98系统下利用Delphi6.0如何设计、实现微型Web服务器中的主要部分作了详细的介绍。利用这种方法,可以非常容易地在嵌入式设备中建立起自己的微型Web服务器。
图1微型Web服务器的结构
Web浏览器通常可以使用流行的IE或者其它的浏览器。服务器端的TCP/IP协议栈是操作系统内嵌的,其信息流符合HTTP协议。服务器中的HTTP引擎用来分析浏览器的请求消息,并根据请求作出相应的动作。这些动作包括向浏览器发送一些静态页面或调用一些应用服务程序。对于服务器中的静态web页面,可以使用一些常用软件如FrontPage等制作,以备Web服务器调用。而服务器中的应用服务程序则用来扩展服务器所提供的服务。 从图1中可以看出,微型web服务器的核心就是:HTTP引擎。
典型的Web服务器的模型
一个典型的微型Web服务器的结构可以用图1
作者简介:
HTTP引擎的设计和实现
HTTP协议是一种网络应用层的标准协议,
Web浏览器和Web服务器之间的通信都是采用HTTP协议来实现的。因此只要是符合HTTP协议的通讯过程和数据内容,就可以使用浏览器作为客户端进行连接和传递。在微型Web服务器中,为得到一个稳定的用户界面而又不影响系统有限的
刘波涛(1980-),男,2003年毕业于江汉石油学院
计科系,现在西南石油学院计算机科学学院攻读计算机应用专业硕士学位。
—26—
系统分析师
国外电子测量技术 2004年第1期 设计技术CPU及内存资源,必须使用HTTP1.1标准。与HTTP1.0相比较,HTTP1.1支持TCP的持续连接并可以使用管道技术,因此,它的效率较高,
并且不会造成过大的资源消耗。
HTTP协议利用字符串的形式进行通信,将它传送的信息称为HTTP消息(HTTP2Message)。根据IETF(InternetEngineeringTaskForce)所制定的RFC(RequestForComments)2616文档中的定义,我们可以将实际过程中的HTTP消息分为两种类型:浏览器传送给服务器的请求消息(HTTPRequestMessage)和服务器传送给浏览器的响应消息(HTTPResponseMessage)。这两种消息的执行实体是不同的,响应消息由浏览器解释执行,请求消息则由服务器解释执行。 请求消息的规范格式如下:Method Request2URI
HTTP2Version ;请求行General2Header;Request2HeaderEntity2;空行
Message2Body;消息实体 三种消息头的次序是任意的。其中,请求行必不可少,其余部分则是可选的。
在请求行中,Method(方法)说明了在给定的资源范围内所执行的动作,如调用Web页面或请求特定的URL。常用的两种方法是GET或POST。当然还有其他的方法,这些方法在HTTP协议规定中都有说明,详细说明见RFC2616。 Request2URI(UniformResourceIdentifier)字段说明所请求的信息资源。URI称为统一资源标识符,用于标识Internet中某一主机上的某一资源的位置。一个Web页面(如http://www.77cn.com.cn/index.html),基本上就是一个指定了协议(http://)的URI。URI与通常所说的“网址”有所不同,网址是指某个网点IP地址所对应的域名(如http://www.77cn.com.cn),而URI则要进一步指明网址下的路径、网页文件名(如http://www.77cn.com.cn/index.html)、web应用程序名等信息资源。Web上每一种可用的资源如HTML文档、图像、视频片段、程序等,都要由一个唯一的URI进行标识和定位。
HTTP2Version则指明浏览器所能支持的HTTP协议版本号,多数是1.0(由RFC1945规定)或1.1。 通用消息头、请求消息头和实体消息头的一般格式都是:field2name:field2value。它们可以由多
个字段(field)组成,每个字段占一行(用回车换行符CR/LF作为每一行的结束标志),每行由字段名和字段值组成,彼此用冒号隔开。HTTP对于每一个字段的意义及其对应的值都有详细的规定(详见RFC2616)。可供使用的字段很多,但并不是每次发送请求消息都要使用所有的字段,而是根据需要使用其中的若干个。 Web服务器的核心是HTTP引擎,其设计的重点是实现一个处理HTTP请求消息的分析模块,可以用HttpHead结构来描述HTTP请求消息,其结构设计如表1所示。 在HttpHead结构中,HTTP并定义了两种。 HTTP请求消,Htttp请求,经分析后存入HttpHead结构中的。HttpHead.Analyze的算法说明如下:
1、备份请求信息,以供后面使用2、开始分析第一行 取得客户端请求字符串的第一行的长度。 拷贝请求的第一行,以单独分析。 在请求字符串中删除请求的第一行,以便后续操作。 通过空格区分,得到请求的Method。 分析第一行Method以后的字符串。 得到第一行Method以后的字符串的长度,以空格为界。 在第一行中删除请求的第一部分,以便后续操作得到URI及HTTP版本号。 通过空格区分,得到请求的URI。这一步涉及默认路径的问题。 在第一行中删除请求的第二部分,以便后续操作得到HTTP的版本号。 通过空格区分,得到请求的Http版本号。3、循环分析余下的各行头消息,其格式相同 判断分析是否完成。请求消息的头信息以#13#10#13#10(即空行)为标志结束。 移动指针,指向下一行。 取得”:”前的请求字段名。 取得”:”后的请求字段的值。
4、当循环结束时,得到所有的请求字段及对应的值
5、分析过程结束
HttpHead.Analyze过程将HTTP的请求消息按行分析,以回车/换行来区分请求行、通用消息
—27
—
系统分析师
国外电子测量技术 2004年第1期 设计技术头、请求消息头和实体消息头,而在请求行中则以空格来区分各个字段。 表1 HttpHead结构设计
属 性
MethodURIOtherFieldsUserPasswordUsernameEncodeWayPostDataDataTypeRequstHost
表2 SCustomSock结构
属 性
HSocketPortName
意 义
Socket句柄 …… 此处隐藏:4085字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [文秘资料]班长职务辞职报告
- [文秘资料]完美的辞职报告
- [文秘资料]经典的员工辞职报告
- [文秘资料]医院口腔医生辞职报告
- [文秘资料]总经理辞职报告范文四篇
- [文秘资料]超市职员个人辞职报告
- [文秘资料]村妇联主任的辞职报告
- [文秘资料]辞职报告书格式
- [文秘资料]酒店辞职报告简单范文
- [文秘资料]联通的辞职报告
- [文秘资料]2017最新私企员工辞职报告范文
- [文秘资料]2019年度医院基层党组织书记抓党建述职
- [文秘资料]工作时间长辞职报告
- [文秘资料]辞职报告怎么写出来
- [文秘资料]个人能力原因辞职报告
- [文秘资料]网络工程师辞职报告
- [文秘资料]项目部辞职报告
- [文秘资料]缝纫工辞职报告怎么写
- [文秘资料]XXX州委书记述职报告
- [文秘资料]抓基层党建工作述职报告
- (王虎应老师讲课记录)六爻理象思维
- 八个常见投影机故障排除法
- 质量专业综合知识(中级)第一章质量管理
- 煤矿班组建设实施意见
- 我国快餐业与肯德基经营模式的比较与分
- 汽车保险杠模具标准化模架技术工艺研究
- 汽车二级维护作业团体赛比赛规程
- 装卸搬运工安全操作规程
- 高效的工作方法-刘铁
- 依据《生产安全事故报告和调查处理条例
- 2015专业PS夜景亮化效果图制作教程
- 企业劳动定额定员浅析
- 中枢神经系统医学影像学本科五年制第五
- 长城汽车参观探营第三站:研发试验中心
- 小升初语文专项训练
- 建筑工程质量检测资质分类与等级标准
- 周燕珉-我国养老社区的发展现状与规划
- 《生命里最后的读书会》读后感
- 实验室管理评审报告
- CCNA思科网院教程精华之网络基础知识




