欢迎来到天天文库
浏览记录
ID:10157000
大小:28.50 KB
页数:6页
时间:2018-06-11
《嵌入式web服务器的设计及其cgi实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、嵌入式Web服务器的设计及其CGI实现摘要基于Boa和CGI技术建立Web服务器的理念,可以解决远程访问、控制和监测嵌入式设备的问题。Web服务器的硬件核心是S3C2410处理器,操作系统为ARMLinux,在整体设计方案进行论证的基础上,将嵌入式Web服务器设计在其中,阐述了系统的硬件结构构成,重点分析嵌入式Web服务器的设计理念和CGI的实现及应用扩展,最后对嵌入式Web服务器运行并测试。测试结果表明,这种服务器运行速度稳定、相应较快、控制方便,到了预期应用效果。【关键词】嵌入式Web系统服务器设计CGI互联网网络技术的发展与应用,使人们
2、与网络的联系越来越密切,生活的很多方面都应用了嵌入式技术,并且将会有越来越多的信息化产品连接到网络中。用户能够在Web页面中对相关系统进行控制或远程访问,由此对远程设备的相关信息进行修改和查看。嵌入式Web服务器的设计及CGI的实现,能够满足这个需求,不但能令嵌入式设备连入互联网,还能实现Web服务器和客户端之间的动态数据交互。1嵌入式Web服务器的设计理念6一般来讲,嵌入式系统都没有TCP/IP协议栈或文件系统,主要原因是因为嵌入式设备的资源有限。RAM和ROM的存储量都不大,所以要想在资源受到限制的情况下,保证Web服务器的正常工作是非常
3、困难的。所以开发人员根据上述问题,并结合嵌入式Web服务器的特点和要求,在HTTP1.1的基础上,提出了嵌入式Web服务器的主要目标:能够传输简单文档,比如HTML页面下载、上传等工作;支持表单处理,以及POST/GET请求方式;支持页面的动态输出;支撑嵌入式Web服务器与页面分离;支持局域网端口和广域网端口在Web上的访问。将Web服务器引入到现场测试和控制设备中,并在对应的硬件平台和软件系统的支持下,能够使传统的测试和控制设备发生转变,具备了通讯协议,以TCP/IP为底层,互联网的网络测试和控制设备是以Web技术为核心。主要有三方面的功能
4、:提供接口监测现场设备;发布静态和动态网页信息;用接口对现场设备进行控制。要想使软件系统和通信系统的设计和维护工作量降低,达到提升现场测试和设备控制管理水平的目的,在设计过程中,充分考虑Web技术的独立性和开放性。异构网络远程管理和监控设备方法、途径可通过嵌入式Web服务器技术实现。6一般情况下,CGI是一个不依靠嵌入式Web服务器的应用程序,而本文的CGI的实现支持HTTP一个函数,并由HTTP解析模块进行回调,这种方法的优势是在Web模块中,缩短了执行文件的长度,但是这种提高执行速度的方法,会破坏移植性和独立性。2CGI实现Web服务器与
5、外部扩展应用程序交互的一个标准接口是CGI(CommonGatewayInterface)。其对Web服务器调用其它可执行程序的接口标准进行了规定,调用CGI程序实现和Web浏览器交互是Web服务器选用的交互形式,因此,CGI能够对Web浏览器发出的信息进行传递,发送给Web服务器进行处理,然后再将处理结果反馈给Web浏览器。要想处理来自浏览器输入的数据,应参照CGI标准编写外部扩展程序,进而完成客户端和服务器的交互工作,使动态Web技术能够实现。其工作原理如下图1所示。Web服务器与CGI脚本之间的接口标准遵照CGI定义。在B/S架构下,C
6、GI的主要功能是将客户端的信息传递给Web服务器,Web服务器将收到的相关信息存入到环境变量中,环境变量中的相关信息是CGI脚本运行的基础,然后通过指定CGI脚本的运行来完成特定工作,最后以HTML格式为浏览器端输出对应的执行结果。因为用户能在CGI脚本传递中使用不同的参数,所以浏览器和服务器之间具有了交互性。CGI的重要成员之一CGI环境变量,具有十分重要的作用,嵌入式Web服务器和CGI接口都专门设置了一定数量的环境变量,可以用来传递一些重要的参数给CGI程序。63CGI在嵌入式Web服务器中的应用用CGIC对CGI程序进行C语言的开发时
7、,可以用模块替换CGIC,或者直接将编写的CGI程序和cgic.c以及cgic.h共同编译。cgic.c是整个CGIC函数库的本质。从cgic.c可以了解到,其已经对main函数进行了定义,对于CGI程序要使用CGIC进行编写,都是从cgic.c中的代码入口,在库函数进行了一系列初始化操作之后,例如获取系统环境变量,解析参数等等,才能够调用用户编写的代码。所以在开发自己的CGI程序时,要调用CGIC库,不能继续使用main(),而是要使用CGIC提供的cgiMain()来开始程序。另外,CGI程序输出HTML页面的方式是利用printf将页面
8、逐行打印出来,所以开发人员应该对HTML网页的格式及编写方法有一定了解。6通过对嵌入式系统的认识,开发人员无需处理大量的客户请求,也不必专门寻求速度,基于Web的管
此文档下载收益归作者所有