zoukankan      html  css  js  c++  java
  • 关于嵌入式web服务器

    1.boa的配置文件boa.conf

      

        Port 80 //服务访问端口

        User 0
        Group 0

        ErrorLog /var/log/boa/error_log //错误日志地址
        AccessLog /var/log/boa/access_log //访问日志文件

        DocumentRoot /var/www //HTML文档的主目录

        UserDir public_html //

        DirectoryIndex index.html //默认访问文件

        DirectoryMaker /usr/lib/boa/boa_indexer

        KeepAliveMax 1000 //一个连接所允许的HTTP持续作用请求最大数目

        KeepAliveTimeout 10 //HTTP持续作用中服务器在两次请求之间等待的时间数,以秒为单位

        MimeTypes /etc/mime.types //指明mime.types文件位置

        DefaultType text/plain //文件扩展名没有或未知的话,使用的缺省MIME类型

        CGIPath /bin:/usr/bin:/usr/local/bin //提供CGI程序的PATH环境变量值

        Alias /doc /usr/doc //为路径加上别名

        ScriptAlias /cgi-bin/ /var/www/cgi-bin/ //输入站点和CGI脚本位置

    2.boa简介

      

    BOA
    ========================
    服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。  

    是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。   


    CGI
    ========================
    在物理上是一段程序,运行在服务器上,提供同客户端HTML页面的接口。即客户端与服务器的接口。   

    比如留言本的工作流程:先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下“留言”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的cgi程序中,于是cgi程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后cgi程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束。

    3.CGI简介


    CGI简介:
    =====================
    一、概念:公共网关接口CGI(Common GatewayInterface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。

    在物理上,CGI是一段程序,运行在服务器上,提供同客户端HTML页面的接口。这样说大概还不好理解。

    那么我们看一个实际例子:
    ====================================
    现在的个人主页上大部分都有一个留言本。留言本的工作是这样的:先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下“留言”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的cgi程序中,于是cgi程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后cgi程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束。


    二、功能:绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能。

    CGI应用程序主要的用途有以下几种:   

    1.根据浏览者填写的HTML表单发送定制的答复;   

    2.创建可单击的图像缩小图;   

    3.创建一个浏览者可以搜索内容的数据库;   

    4.提供服务器与数据库的接口,并把结果转换成HTML文档;   

    5.制作动态HTML文挡。

    三、处理步骤:

       ⑴通过Internet把用户请求送到服务器。
      
    ⑵服务器接收用户请求并交给CGI程序处理。
     
    ⑶CGI程序把处理结果传送给服务器。  
     
    ⑷服务器把结果送回到用户。

    四、优点:
       CGI可以为我们提供许多HTML无法做到的功能。比如 a.一个记数器 b.顾客信息表格的提交以及统计 c.搜索程序 d.WEB数据库,用Html是没有办法记住客户的任何信息的.

    用Html也是无法把信息记录到某一个特定文件里的。要把客户端的信息记录在服务器的硬盘上,就要用到CGI。这是CGI最重要的作用,它补充了Html的不足。  

    使在网络服务器下运行外部分应用程序(或网关)成为可能。CGI-BIN 目录是存放CGI脚本的地方。这些脚本使WWW服务器和浏览器能运行外部程序,而无需启动另一个原因程序。

       它是运行在Web服务器上的一个程序,并由来自于浏览者的输入触发。CGI是在HTTP服务器下运行外部程序(或网关)的一个接口,它能让网络用户访问远程系统上的使用类型程序,就好像他们
    在实际使用那些远程计算机一样。   

    CGI能够让浏览者与服务器进行交互,如果你曾经遇到过在网络上填表或者进行搜索,就很有可能就是用的CGI。   


    五、应用程序工作原理:
       1.浏览器通过HTML表单或超链接请求指上一个CGI应用程序的URL。   

    2.服务器收发到请求。   

    3.服务器执行指定所CGI应用程序。   

    4.CGI应用程序执行所需要的操作,通常是基于浏览者输入的内容。   

    5.CGI应用程序把结果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页)。   

    6.网络服务器把结果返回到浏览器中。


    六、注意的问题
       CGI应用程序运行在浏览器可以请求的服务器系统上,执行时需要使用服务器CPU时间和内存。如果有成千上万的这种程序会同时运行,那会对服务器系统提出极高的要求。你要慎重考虑这个问题,以防止服务器系统崩溃。   

    不完善的CGI应用程序可能成为别人非法进人服务器系统的通道,有可能导致重要的资料被删除或外泄。

     4.XML简介

    一、概念:
    ==================
    XML(Extensible Markup Language),一种扩展性标识语言。"扩展性""标识""语言"。每一个词都明确的点明了XML的重要
    特点和功能。我们来仔细分析:


    1.扩展性---使用XML,你可以为你的文档建立自己的标记(tags)。
    =================
    XML的第一个词是"扩展性",这正是XML强大的功能和弹性的原因。
    在HTML里,有许多固定的标记,我们必须记住然后使用它们,你不能使用HTML规范里没有的标记。而在XML中,你能建立
    任何你需要的标记。你可以充分发挥你的想象力,给你的文档起一些好记的标记名称。比如,你的文档里包含一些游戏
    的攻略,你可以建立一个名为<game>的标记,然后在<game>下再根据游戏类别建立<RPG>,<SLG>等标记。只要清晰,易于
    理解你可以建立任何数量的标记。


    2.标识---使用XML你可以识别文档中的元素。
    =================
    XML的第二个词是"标识",这表明了XML的目的是标识文档中的元素。

    不论你是HTML,还是XML,标识的本质在于便于理解,如果没有标识,你的文档在计算机看来只是一个很长的字符串,每个
    字看起来都一样,没有重点之分。 通过标识,你的文档才便于阅读和理解,你可以划分段落,列明标题。XML中,你更
    可以利用其扩展性 来为文档建立更合适的标识。

    <b>frist step<b>
    这里<b>表示粗体,只用来说明是用粗体来显示"frist step"字符,<b>本身并不包含任何实际的信息,在页面上你看不
    到<b>,真正传达信息的是"frist step "。


    3.语言---使用XML你要遵循特定的语法来标识你的文档。
    =================
    XML第三个词是"语言"。这表明了作为一种语言XML必须遵循一定的规则。虽然XML的扩展性允许你创建新标识,但它仍然
    必须遵循特定的结构,语法和明确的定义。

    在计算机领域,语言常常用来编程实现一些功能和应用,但不是所有的"语言"都是用来编程的,XML就只是一种用来定义
    标识和描述信息的语言。

    二.xml结构化---XML促使文档结构化,所有的信息按某种关系排列。
    ====================
    "结构化"听起来太抽象了,我们这样理解,结构化就是为你的文档建立一个框架,就象写文章先写一个提纲。结构化使
    你的文档看起来不会杂乱无章,每一部分都紧密联系,形成一个整体。

    结构化有两个原则:
    1.每一部分(每一个元素)都和其他元素有关联。关联的级数就形成了结构。
    2.标识本身的含义与它描述的信息相分离。

    我们来看一个简单的例子帮助理解:
    <?xml version="1.0" encoding="GB2312"?>
    <myfile>
    <title>XML轻松学习手册</title>
    <chapter>XML快速入门
    <para>什么是XML</para>
    <para>使用XML的好处</para>
    </chapter>
    <chapter>XML的概念
    <para>扩展性</para>
    <para>标识</para>
    </chapter>
    </myfile>
    这是本文的XML描述文档,可以看到标识分三级关联,非常清晰:
    <myfile>
    <chapter>
    <para>
    ...
    </para>
    </chapter>
    </myfile>
    上面这样的文档结构,我们又称之为"文档树",主干是父元素,如<myfile>,分支和页是子元素,如<chapter>和<para>。


    三、xml的好处
    ==================
    使用XML有什么好处?来看w3c组织(XML标准制定者)的说明:

    XML使得在网络上使用SGML语言更加"简单和直接": 简化了定义文件类型的过程,简化了编程和处理SGML文件的过程,
    简化了在Web上的传送和共享。

    1.XML可以广泛的运用于web的任何地方;
    2.XML可以满足网络应用的需求;
    3.使用XML将使编程更加简单;
    4.XML便于学习和创建;
    5.XML代码将清晰和便于阅读理解;

    四、xml实例分析
    ==================
    XML非常简单,学习容易。如果你熟悉HTML,你会发现它的文档和HTML非常相似,看同样的示例文档(例1):

    ?xml version="1.0"?><br><br>
    <myfile><br><br>
    <title>XML Quick Start</title><br><br>
    <author>ajie</author><br><br>
    <email>ajie@aolhoo.com</email><br><br>
    <date>20010115</date><br><br>
    </myfile>

    第一行是一个XML声明,表示文档遵循的是XML的1.0 版的规范。

    第二行定义了文档里面的第一个元素(element),也称为根元素: < myfile>。这个就类似HTML里的< HTML>开头标记。
    注意,这个名称是自己随便定义的。

    再下面定义了四个子元素:title,author,email,和date。分别说明文章的标题,作者,邮箱和日期。当然,你可以用
    中文来定义这些标签,看上去更便于理解:

    <?xml version="1.0" encoding="GB2312"?>
    <文章>
    <标题>XML轻松学习手册</标题>
    <作者>ajie</作者>
    <信箱>ajie@aolhoo.com</信箱>
    <日期>20010115</日期>
    </文章>


    这就是XML的文档,任何掌握HTML的网友都可以直接写出这样简单的XML文档。


    另外,学习XML还必须掌握一种页面脚本语言,常见的就是javascript和VB script。因为XML数据是使用script
    实现HTML中调用和交互的。我们看一个最简单的例子(例2):

    1.将下面代码存为myfile.html

    <html>
    <head>
    <script language="Javascript" for="window" event="onload">
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async="false";
    xmlDoc.load("myfile.xml");
    nodes = xmlDoc.documentElement.childNodes;
    title.innerText = nodesitem(0).text;
    author.innerText = nodes.item(1).text;
    email.innerText = nodes.item(2).text;
    date.innerText = nodes.item(3).text;

    </script>
    <title>在HTML中调用XML数据</title>
    </head>
    <body bgcolor="#FFFFFF">
    <b>标题: </b>
    <span id="title"> </span>
    <b>作者: </b>
    <span id="author"></span>
    <b>信箱: </b>
    <span id="email"></span>
    <b>日期:</b>
    <span id="date"></span>
    </body><br><br>
    </html><br><br>

    2.将下面代码存为myfile.xml

    <?xml version="1.0" encoding="GB2312"?>
    <myfile>
    <title>XML轻松学习手册</title>
    <author>ajie</author>
    <email>ajie@aolhoo.com</email>
    <date>20010115</date>
    </myfile>

    3.将它们放在同一个目录下,用IE5以上版本浏览器打开,可以看到效果。 学习并掌握一种script,你将真正了解到
    XML无比的强大的功能。

    五. XML和HTML的区别
    ==========================
    XML和HTML都来自于SGML,它们都含有标记,有着相似的语法,HTML和XML的最大区别在于:HTML是一个定型的标记语言,
    它用固有的标记来描述,显示网页内容。比如< H1>表示首行标题,有固定的尺寸。相对的,XML则没有固定的标记,
    XML不能描述网页具体的外观,内容,它只是描述内容的数据形式和结构。

    这是一个质的区别:网页将数据和显示混在一起,而XML则将数据和显示分开来。

    我们看上面的例子,在myfile.htm中,我们只关心页面的显示方式,我们可以设计不同的界面,用不同的方式来排版页
    面,但数据是储存在myfile.xml中,不需要任何改变。

    (如果你是程序员,你会惊讶的发现,这与模块化面向对象编程的思想极其相似!其实网页何尝不是一种程序呢?)

    正是这种区别使得XML在网络应用和信息共享上方便,高效,可扩展。所以我们相信,XML做为一种先进的数据处理方法,
    将使网络跨越到一个新的境界。


    六. XML的严格格式
    =======================
    吸取HTML松散格式带来的经验教训,XML一开始就坚持实行"良好的格式"。

    我们先看HTML的一些语句,这些语句在HTML中随处可见:

    1.
    sample
    2.< b>< i>sample< /b>< /i>
    3.< td>sample< /TD>
    4.< font color=red>samplar< /font>

    在XML文档中,上述几种语句的语法都是错误的。因为:

    1.所有的标记都必须要有一个相应的结束标记;
    2.所有的XML标记都必须合理嵌套;
    3.所有XML标记都区分大小写;
    4.所有标记的属性必须用""括起来;
    所以上列语句在XML中正确的写法是

    1.
    sample
    2.< b>< i>sample< /i>< /b>
    3.< td>sample< /td>
    4.< font color="red">samplar< /font>

    另外,XML标记必须遵循下面的命名规则:

    1.名字中可以包含字母、数字以及其它字母;
    2.名字不能以数字或"_" (下划线) 开头;
    3.名字不能以字母 xml (或 XML 或 Xml ..) 开头;
    4.名字中不能包含空格。

    在XML文档中任何的差错,都会得到同一个结果:网页不能被显示。各浏览器开发商已经达成协议,对XML实行严格而
    挑剔的解析,任何细小的错误都会被报告。你可以将上面的myfile.xml修改一下,比如将< email>改为< Email>,然后
    用IE5直接打开myfile.xml,会得到一个出错信息页面:

    <?xml version="1.0" encoding="GB2312"?>
    <myfile>
    <title>XML轻松学习手册</title>
    <author>ajie</author>
    <Email>ajie@aolhoo.com</email>
    <date>20010115</date>
    </myfile>

  • 相关阅读:
    PNG文件格式具体解释
    opencv2对读书笔记——使用均值漂移算法查找物体
    Jackson的Json转换
    Java实现 蓝桥杯VIP 算法训练 装箱问题
    Java实现 蓝桥杯VIP 算法训练 装箱问题
    Java实现 蓝桥杯VIP 算法训练 单词接龙
    Java实现 蓝桥杯VIP 算法训练 单词接龙
    Java实现 蓝桥杯VIP 算法训练 方格取数
    Java实现 蓝桥杯VIP 算法训练 方格取数
    Java实现 蓝桥杯VIP 算法训练 单词接龙
  • 原文地址:https://www.cnblogs.com/feige1314/p/7220965.html
Copyright © 2011-2022 走看看