Goahead webserver
GoAhead WebServer,它是一个源码免费、功能强大、可以运行在多个平台的嵌入式   WebServer。   GoAhead WebServer的主要特性有:   1. 支持ASP   2. 嵌入式的javascript   3. 标准的CGI执行   4. 内存中的CGI处理GoFroms   5. 扩展的API   6. 快速响应,每秒可处理超过50个请求   7. 完全和标准兼容   8. 如果不包含SSI,仅要求60K的内存;包含SSI,要求500K内存   9. web页面可以存在ROM或文件系统中   10. 支持多种操作系统,包括eCos 、LINUX 、LynxOS 、QNX 、VxWorks 、WinCE、   pSOS等   
Goahead  
1.介绍   
GoAhead Webserver是为嵌入式实时操作系统(RTOS)量身定制的Web服务器。它的目标也许不在于目前的WEB服务器市场,而是面向当嵌入式系统深入我们的工作与生活的明天,那时,它也许会成为使用最广泛的WEB服务器。GoAhead Webserver构建在设备管理框架(Device Management Framework)之上,用户可以像标准的Web Services一样来部署自
己的应用,不需要额外的编程。GoAhead Webserver支持SOAP客户端(Simple Object Access Protocol,简单对象访问协议),XML-RPC客户端,各种Web浏览器和单独的Flash客户端。GoAhead Webserver支持一种类ASP的服务器端脚本语言,其语法形式和微软的ASP语法基本相同(Active Server Page)。GoAhead Webserver是跨平台的服务器软件,可以稳定地运行在Windows,Linux和Mac OS X操作系统之上。GoAhead Webserver是开放源代码的,这意味着你可以随意修改Web服务器的功能。这款WEB服务器非常小巧,它的WIN CE版本编译后的大小还不到60k,它的输出通常也是面向一些小屏幕设备。在性能方面,使用一颗24MH z的68040处理器,它的响应速度为20次/秒,使用266MHz的Pentium处理器可以达到50次/秒的响应速度。 
 
2.操作系统
Windows CE, Wind River VxWorks, Linux, Lynx, QNX,与Windows 95/98/NT
3.版本  
Goahead从2003年开始发布,最新的版本:webs218.tar ,827kB,解压后为2.28MB   
4.功能、特点  
· 很小的内存消耗   
· 支持认证功能Digest Access Authentication (DAA)   
· 支持安全的通信,例如SSL(安全的套接字层)   
· 支持动态Web页面,如ASP页面   
· 可以使用传统的C语言编程定制Web页面里的HTML标签   
· 支持CGI(公共网关编程接口)   
· 嵌入式的JavaScript脚本翻译器   
· 独特的URL分析器   
·
它基本上属于一个HTTP1.0标准的WEB服务器,对一些HTTP1.1的特性如(持久连接)也提供了支持。每秒65次connections
 
5.可执行文件大小、内存使用情况   
内存需求60K,它的WIN CE版本编译后的大小还不到60k。
本文主要就介绍linux  基于goahead-2-1.8 的开发
Goahead webserver环境是怎么搭建的?
1.下载Goahead-2-1.8 或者其他版本
2.进入GoAhead-2.1.8/LINUX下面  然后make  这时会生成一个webs的可执行文件
3.后台启动程序 (./webs &)
这时环境搭建好了,我们可以试着访问站点的下面的网页
1、打开浏览输入  localhost/index.asp
Localhost可以换成 你的ip地址如 192.168.1.6  192.168.1.6/index.asp
为什么我们可以这样访问index.asp?index.asp是放在哪个地方的?  带着这些疑问我们继续忘下解释:
其实在localhost/index.asp这个地址里面有个隐含的信息,那就是端口,我这里用的是80默认端口,完整的路径应该是localhost:80/index.asp
端口可以在main.c里面去修改
打开main.c大约在59行的样子你可以到以下这些语句
/*********************************** Locals ***********************************/
/*
*    Change configuration here
*/
static char_t        *rootWeb = T("www");            /* Root web directory */
static char_t        *password = T("");                /* Security password */
static int            port = 80;                        /* Server port */
static int            retries = 5;                    /* Server port retries */
static int            finished;                        /* Finished flag */
/****************************** Forward Declarations **************************/
Static int port = 80;这是我定义的80端口,当然很多人也用8080 ,你要是喜欢你可以根据自己的实际情况修改,如1314      localhost:1314/index.asp
static char_t        *rootWeb = T("www");            www是什么?这个就回答了之前的问题,这是我们服务器的监听目录,这可以在Goahea-2-1.8/下面到(如果没有可以手动建立),我们访问的页面index.asp正是放到这个目录下的  (Goahea-2-1.8/www)
学习webserver开发很重要的一个环节就是开发动态网页
1、表单的提交
借用他里面本来的一个例子还说明
目录web下有一个叫forms.asp的文件  把这个文件拷贝到监听目录下(我的是“www”)
打开浏览器,用localhost:80/forms.asp访问  如下图
如果没有到这个forms.asp的文件可以自己建一个
代码如下:
<html>
<!- Copyright (c) Go Ahead Software Inc., 2000-2000. All Rights Reserved. ->
<head>
<title>GoForm Test</title>
<link rel="stylesheet" href="style/normal_ws.css" type="text/css">
</head>
<body>
<h1>GoForm Test</h1>
<form action=/goform/formTest method=POST>
<table>
<tr>
    <td>Name:</td><td><input type=text name=name size=50 value=""></td>
</tr>
<tr>
    <td>Address:</td><td><input type=text name=address size=50 value=""></td>
</tr>
<tr>
    <td></td>
      <td ALIGN="CENTER">
        <input type=submit name=ok value="OK"> <input type=submit name=ok value="Cancel"></td>
</tr>
</table>
</form>
</body>
</html>
输入你的名字和地址 点确定看看 如:
表单处理完之后输出如下结果:
这样看起来很简单的功能是怎么实现的呢:
把main.c打开,到下面这个函数
这个就是用来处理我们输入结果的函数
也许大家还不知道为什么直接就是这个函数来处理,是在哪里指定的。那我们就回到forms.asp的代码里面
有这样一句 :
它的意思就是如果这个表单提交了,那么后台就用formTest来处理
还有一个疑问就是:参数是怎么传递的
还是回到forms.asp的代码里面
里面有个name = name    和 name = address    这个name address在代码里面和相对应。
static void formTest(webs_t wp, char_t *path, char_t *query);//这是声明
关于函数formTest()还有几点要说的  如果要使他有用我们还必须在main.c进行注册
下面239行就是用websFormDefine() 对 formTest进行注册
关于form表单提交就先说到这里webserver接口开发
下面就讲一下 webserver里面的asp的用法
Asp有什么用? 
举这样一个例子 :你去访问一个网页  访问的时候会有一些后台的数据及时的显示处理,asp就是做这个的,你可以把asp的代码嵌入到你的网页里面  然后做一些动态的处理
本期讲解暂且到此,楼主要休息了,请持续关注goahead开发入下篇!!!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。