服务器嵌入式Linux系统CGI程序设计的技术

cgi格式  时间:2021-03-15  阅读:()

嵌入式Linux系统C GI程序设计的技术目录

2. 1 uclinux下

(1)编译boa到内核

(3)编译烧写内核

2. 2具有mmu平台的l inux下b0a的实现与配置

3. 1工作原理

(1)www和c g i的工作原理

(2)ur l编码

3. 2 cgi外部扩展程序编制

正文

随着互联网应用的普及越来越多的化产品需要接入互联网通过web页面进行远程访问。嵌入式web系统提供了一种经济、实用的互联网嵌入式接入方案。这里结合一种嵌入式web server boa来介绍嵌入式linux系统下的cgi程序设计技术。

2 web server boa的实现与配置

2. 1 uclinux下主要有三个web server:httpd、 thttpd和boa。httpd是最简单的一个web server它的功能最弱不支持认证不支持cgi。 thttpd和boa都支持认证、 cgi等功能都比较全。 boa是一个单任务的小型http服务器源代码开放、性能优秀特别适合应用在嵌入式系统中。 目前的uclinux的代码中已经包含boa的源代码。在uclinux下实现boa只需要对boa做一些配置和修改。 以下是配置的过程。

(1)编译boa到内核

首先需要把boa编译到内核 即执行make menuconfig在应用程序选单中network application项下面选择boa。该操作需要重新编译内核。

()编制配置文件f

在linux操作系统下应用程序的配置都是以配置文件的形式提供的一般都是放在目标板/etc/目录下或者/etc/co目录下。但的配置文件一般都旋转在目标板/home/httpd/目录下。

例如一个典型的文件格式如下:servername samsung-armdocumentroot/home/httpdscriptalias/cgi-bihome/httpd/cgi-biscriptalias/index.html/home/httpd/index.html

它指定了html页面必须放到/home/httpd目录下 cgi外部扩展程序必须放到/home/httpd/cgi-bin目录下。

(3)编译烧写内核

重新编译内核后通过烧写工具烧写内核就可以在pc上通过ie浏览器访问开发板上的web server。例如输入开发板的ip即可访问到自己做的网页index.html了。并且通过编写cgi外部扩展程序可以实现动态web技术下面将详细介绍。

2.2具有mmu平台的l inux下b 0a的实现与配置

对于有mmu(内存管理单元)的平台如armlinux和ppclinux可以到网上一个主流版本的boa发行包。因为是运行在目标系统所以要用交叉编译工具编译 即需要修改boarc/makef ile里面的编译器。例如:cc=/linuxppc/cdk/bipowerpc-l inux-gcc

cpp=/linuxppc/cdk/bipowerpc-linux-g++

然后直接在boarc 目录下执行make 即可生成boa可执行文件;将其编译入内核并烧写到存储设备就可以实现访问boa服务器。

3 cgi程序设计技术cgi (common gateway interface)是外部应用扩展应用程序与www服务器交互的一个标准接口。按照cgi标准编写的外部扩展应用程序可以处理客户端浏览器输入的数据从而完成客户端与服务器的交互操作。而cgi规范就定义了web服务器如何向扩展应用程序发送消息在收到扩展应用程序的后又如何进行处理等内容。通过cgi可以提供许多静态的html网页无法实现的功能 比如搜索引擎、基于web的数据库访问等等。

3. 1工作原理

(1)www和cgi的工作原理http协议是www的基础它基于客户/服务器模型一个服务器可以为分布在网络中处的客户提供服务;它是建立在tcp/ip协议之上的“无连接”协议每次连接只处理一个请求。在服务器上运行产着一个守护进程对端口进行监听等待来自客户的请求。当一个请求到来时将创建一个子进程为用户的连接服务。根据请求的不同服务器返回html文件或者通过cgi调用外部应用程序返回处理结果。服务器通过cgi与外部程序和脚本之间进行交互根据客户端在进行请

求时所采取的方法服务器会收集客户所提供的信息并将该部分信息发送给指定的cgi扩展程序。 cgi扩展程序进行信息处理并将结果返回服务器然后服务器对进行分析并将结果发送回客户端。

外部cgi程序与www服务器进行通信、传递有关参数和处理结果是通过环境变量、命令行参数和标准输入来进行的。服务器提供了客户端(浏览器)与cgi扩展程序之间的信息交换的通道。 cgi的标准输入是服务器的标准输出而cgi的标准输出是服务器的标准输入。客户的请求通过服务器的标准输出传送给cgi的标准输入 cgi对进行处理后将结果发送到它的标准输入然后由服务器将处理结果发送给客户端。

(2)url编码

客户端浏览器向服务器发送数据采用编码的形式进行。该编码就是crl编码。编码的主要工作是表单域的名字和值的转义具体的做法为:每一对域和值里的空格都会被替换为一个加号(+)字符不是字母或数字的字符将被替换为它们的十六进制数字形式格式为%hh。 hh是该字符的ascii十六进制值。

标签将被替换为“%0d%0a”

信息是按它们在表单里出现的顺序排列的。数据域的名字和数据域的值通过等号(=)字符连在一起。各对名/值再通过“&”字符连接在一起。经过这些编码处理之后表单信号就整个成为一个连续的字符流里面包含着将被送往服务器的全部。

因为表单输入都是经过编码后传递给脚本程序的所以cgi扩展程序在使用这些参数之前必须对它们进行解码。

3.2 cgi外部扩展程序编制

服务器程序可以通过三种途径接收:环境变量、命令行和标准输入。具体使用哪一种方法要由标签的method属性来决定。

在“method=get”时 向cgi程序传递表单编码信息的正常做法是通过命令来进行的。大多数表单编码信息都是通过query_string的环境变量来传递的。如果“method=post” 表单信息将通过标准输入来读取。还有一种不使用表单就可以向cgi传送信息的方法那就是把信息直接追回在url地址后面和url之间用问号(?)来分隔。

Vultr新用户省钱福利,最新可用优惠码/优惠券更新

如今我们无论线上还是线下选择商品的时候是不是习惯问问是不是有优惠活动,如果有的话会加速购买欲望。同样的,如果我们有准备选择Vultr商家云服务器的时候,也会问问是不是有Vultr优惠码或者优惠券这类。确实,目前Vultr商家有一些时候会有针对新注册用户赠送一定的优惠券活动。那就定期抽点时间在这篇文章中专门整理最新可用Vultr优惠码和商家促销活动。不过需要令我们老用户失望的,至少近五年我们看到Vu...

蓝速数据(58/年)秒杀服务器独立1核2G 1M

蓝速数据金秋上云季2G58/年怎么样?蓝速数据物理机拼团0元购劲爆?蓝速数据服务器秒杀爆产品好不好?蓝速数据是广州五联科技信息有限公司旗下品牌云计算平台、采用国内首选Zkeys公有云建设多种开通方式、具有IDC、ISP从业资格证IDC运营商新老用户值得信赖的商家。我司主要从事内地的枣庄、宿迁、深圳、绍兴、成都(市、县)。待开放地区:北京、广州、十堰、西安、镇江(市、县)。等地区数据中心业务,均KV...

数脉科技:六月优惠促销,免备案香港物理服务器,E3-1230v2处理器16G内存,350元/月

数脉科技六月优惠促销发布了!数脉科技对香港自营机房的香港服务器进行超低价促销,可选择30M、50M、100Mbps的优质bgp网络。更大带宽可在选购时选择同样享受优惠,目前仅提供HKBGP、阿里云产品,香港CN2、产品优惠码续费有效,仅限新购,每个客户可使用于一个订单。新客户可以立减400元,或者选择对应的机器用相应的优惠码,有需要的朋友可以尝试一下。点击进入:数脉科技官方网站地址数脉科技是一家成...

cgi格式为你推荐
酒店回应名媛拼单有谁知道有一个日本短片!是一个男的为了表白!杀了酒店好多人然后把他们房间拼成表白的子!openeuler谁知道open opened close closed的区别吗杨紫别祝我生日快乐祝我生日快乐的歌词云计算什么是云计算?机器蜘蛛《不思议迷宫》四个机器蜘蛛怎么得 获得攻略方法介绍www.cn12365.org全国公民身份证号码查询服务中心(http://www.nciic.com.cn/)这个网站怎么查不了啊?雀嘴鳝专家教下怎么才能饲养好一条雀鳝鱼?蚕食嫩妻经典言情小说有哪些?蚕食嫩妻推荐好看的言情小说,要短篇的新广告法新广告法9月1日起正式执行 极限用语罚款20万起
me域名注册 云服务器租用 什么是域名地址 草根过期域名 lnmp 云网数据 tier mediafire下载工具 优key 名片模板psd 512m内存 国外在线代理 圣诞促销 什么是服务器托管 服务器托管什么意思 傲盾官网 hktv 国外ip加速器 raid10 中国电信网络测速 更多