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

CloudCone(20美元/年)大硬盘VPS云服务器,KVM虚拟架构,1核心1G内存1Gbps带宽

近日CloudCone商家对旗下的大硬盘VPS云服务器进行了少量库存补货,也是悄悄推送了一批便宜VPS云服务器产品,此前较受欢迎的特价20美元/年、1核心1G内存1Gbps带宽的VPS云服务器也有少量库存,有需要美国便宜大硬盘VPS云服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务...

Hostodo独立日提供四款特价年付VPS套餐 最低年付$13.99

前天,还有在"Hostodo商家提供两款大流量美国VPS主机 可选拉斯维加斯和迈阿密"文章中提到有提供两款流量较大的套餐,这里今天看到有发布四款庆祝独立日的七月份的活动,最低年付VPS主机13.99美元,如果有需要年付便宜VPS主机的可以选择商家。目前,Hostodo机房可选拉斯维加斯和迈阿密两个数据中心,且都是基于KVM虚拟+NVMe整列,年付送DirectAdmin授权,需要发工单申请。(如何...

GigsGigsCloud 春节优惠2022 指定云服务器VPS主机85折循环优惠码

GigsGigsCloud商家在之前介绍的还是比较多的,因为之前我一直有几台机器在使用,只是最近几年网站都陆续转型删除掉不少的网站和闲置域名,包括今年也都减少网站开始转型自媒体方向。GigsGigsCloud 商家产品还是比较有特色的,有提供香港、新加坡等亚洲机房的云服务器、VPS和独立服务器等。第一、新春优惠活动优惠码:CNY2022-15OFF截止到正月初二,我们可以使用上述优惠码在购买指定G...

cgi格式为你推荐
网络访问无法连接到internet是什么情况多家五星酒店回应网传名媛拼单在街上等公共场所拍到的视屏或者照片传到网上犯法吗?美国互联网瘫痪美国是否有能力关闭全球互联网以及中国互联网,还有美国有没能力关闭某个网站,比如淘宝,天涯,网易等云计算什么是云计算?丑福晋大福晋比正福晋大么同一服务器网站同一服务器上的域名/网址无法访问www.119mm.comwww.kb119.com 这个网站你们能打开不?m.2828dy.com电影虫www.dyctv.com这个电影站能下载电影吗?www.idanmu.com万通奇迹,www.wcm77.HK 是传销么?javlibrary.comSSPD-103的AV女主角是谁啊1!!!!求解
cn域名个人注册 草根过期域名 edgecast highfrequency 新加坡服务器 java主机 dd444 有奖调查 工作站服务器 秒杀汇 香港新世界中心 江苏双线服务器 银盘服务 免费mysql数据库 www789 西安服务器托管 starry 空间服务器 789电视剧网 七十九刀 更多