服务器嵌入式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之间用问号(?)来分隔。

DiyVM:2G内存/50G硬盘/元起线路香港vps带宽CN2线路,香港VPS五折月付50元起

DiyVM是一家低调国人VPS主机商,成立于2009年,提供的产品包括VPS主机和独立服务器租用等,数据中心包括香港沙田、美国洛杉矶、日本大阪等,VPS主机基于XEN架构,均为国内直连线路,主机支持异地备份与自定义镜像,可提供内网IP。最近,商家对香港机房VPS提供5折优惠码,最低2GB内存起优惠后仅需50元/月。下面就以香港机房为例,分享几款VPS主机配置信息。CPU:2cores内存:2GB硬...

PacificRack 下架旧款方案 续费涨价 谨慎自动续费

前几天看到网友反馈到PacificRack商家关于处理问题的工单速度慢,于是也有后台提交个工单问问,没有得到答复导致工单自动停止,不清楚商家最近在调整什么。而且看到有网友反馈到,PacificRack 商家的之前年付低价套餐全部下架,而且如果到期续费的话账单中的产品价格会涨价不少。所以,如果我们有需要续费产品的话,谨慎选择。1、特价产品下架我们看到他们的所有原来发布的特价方案均已下架。如果我们已有...

atcloud:480G超高防御VPS低至$4/月,美国/新加坡等6机房,512m内存/1核/500g硬盘/不限流量

atcloud主要提供常规cloud(VPS)和storage(大硬盘存储)系列VPS,其数据中心分布在美国(俄勒冈、弗吉尼亚)、加拿大、英国、法国、德国、新加坡,所有VPS默认提供480Gbps的超高DDoS防御+不限流量,杜绝DDoS攻击骚扰,比较适合海外建站等相关业务。ATCLOUD.NET是一家成立于2020年的海外主机商,主要提供KVM架构的VPS产品、LXC容器化产品、权威DNS智能解...

cgi格式为你推荐
www.hao360.cn搜狗360导航网址是什么比肩工场命比肩多 是什么意思啊?地陷裂口山崩地裂的意思www.jjwxc.net在哪个网站看小说?同一服务器网站服务器建设:一个服务器有多个网站该如何设置?www.mywife.ccMywife-No 00357 MANAMI SAITO种子下载地址有么?求好心人给www.bbb551.com100bbb网站怎样上不去了www.zhiboba.com上什么网看哪个电视台直播NBAwww.dm8.cc有没有最新的日本动漫网站?hao.rising.cn瑞星强制篡改主页 HTTP://HAO.RISING.CN 各位有什么办法可以解决吗?
网站空间租赁 国外免费vps 流媒体服务器 60g硬盘 网站保姆 国外php空间 嘉洲服务器 元旦促销 智能骨干网 cpanel空间 微信收钱 北京双线 世界测速 idc查询 东莞主机托管 xuni wordpress空间 酷锐 中美互联网论坛 发证机构 更多