2022年CGI在嵌入式WEB服务器中的应用和实现 .pdf
《2022年CGI在嵌入式WEB服务器中的应用和实现 .pdf》由会员分享,可在线阅读,更多相关《2022年CGI在嵌入式WEB服务器中的应用和实现 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本文由 lyquanfa0687贡献 pdf文档可能在WAP 端浏览体验不佳。建议您优先选择TXT ,或下载源文件到本机查看。网络与通信文章编号 :1008-0570(2008)10-3-0110-02 中文核心期刊 微计算机信息 (管控一体化) 年第卷第期 CGI在嵌入式 WEB 服务器中的应用和实现 Application and Realization of CGI in Embedded WEB Server (大连海事大学)李 勇摘要 : 本 文介 绍 了 CGI 技 术 在嵌 入 式 WEB 服 务 器中 的 应 用和 实现 , 在 嵌 入 式 Linux 系 统 中 , 基 于
2、CGI 技 术 , 实 现 客 户 端 和 服 务 器之 间 的 动 态 数 据 交 互 , 通 过 Internet 的 WEB 浏 览 器 基 于 B/S 模 式 实现 系 统 管 理 和 远 程 监 控 等 功 能 。 关键词 : CGI; 嵌入式系统 ; WEB 服务器 ; Linux 中图分类号 : TP393 文献标识码 : A 技 术 创 新 Abstract: This paper introduces application and realization of CGI in embedded WEB Server. The dynamic data exchange is
3、realized between Client and Server in embedded Linux based on CGI technology. This scheme can realize system management and remote monitoring with WEB browser through Internet based on Browser/Server architecture. Key words: CGI; Embedded System; WEB Server; Linux 1 引言随着网 络技术 和 嵌入式 技 术的 快 速 发展,尤其 随着
4、半 导 体 工 艺 的进 步 ,各种 专 用 芯 片 的 集 成 度 越 来 越 高 ,随之 而 来 的 是 功能越来越强大 , 这样也就允许嵌入式系统的内核提供更多 的 功能。 很多的嵌入式操作系统已经提供以太网接口,内置 WEB 径,定义了 CGI 程序的运行环境。 WEB 服务器为 CGI 程序设置的环境变量主要有:REQUEST_METHOD ( 定义 WEB 服务器向 Server 并提供 HTTP 服务。这些功能的提供,使得程序开发人员可以开发 CGI 接口程 序,根据 用 户在浏 览 器端 的 设 置对指 定 的 设备进行操作,既可以提供一个更加人性化的人机界面 , 又大大简化了
5、远程控制程序的开发难度。借助于 CGI 技术实现客户端 与 嵌入式 WEB 服务器端 之 间 的动态数据交 互 , 不仅 可 以 满足嵌 入 式设备 直 接与 Internet 联 网 的需求 , 也 为实现 网 络化实 时 监控和 配 置等提 供 了高效 便 捷 的实施方案。 2 CGI 技 术 简 介 CGI(Common Gateway Interface) ,即 公 共 网 关 接 口 ,是 WEB 服务器与外部扩展应用程序交互的一种标准接口。按照 CGI 标准编写的外部扩展应用程序可以处理来自客户端的协同工作数 据 ,完成客 户 端与 服 务 器 的 动 态 交 互 , 从 而 实
6、现 静 态 HTML 网页无法实现的功能 ( 如表单数据处理、数据库查询等 ) 。 通过编写不同的 CGI 外部扩 展程序 ,可以完成 对 外部 数 据 库的访 问 及 现场设备数据采集的任 务 , 客户端 用 户通过 它 和 WEB 服 务 器 就可以完成对动态数据的访问。 CGI 程序传递数据所采用的方法 ) ,QUERY_STRING (WEB 服 务 器向 CGI 程 序 传递名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - -
7、- 的 数 据 ) ,CONTENT_LENGTH( 向 CGI 程 序 传 递的数据长度 ) ,REMOTE_ HOST( 浏览器所在机器的域名 ) 等等。 2.2 标准输入标 准 输 入 Stdin 是 指 CGI 程 序 获 取 WEB 服务 器 信 息 的 一 种 规 范。 通 常 , CGI 程 序 可 以 通 过 以 下 两 种 调 用 方 式来 获 取 客 户请求的内容: (1) 是通过 URL 直 接 调用; (2) 通 过 交互式 Form 来 调用 。 使 用 交 互 式 Form 向 CGI 接 口 提 交 数 据 有 两 种 模 式 : GET 和 POST 。选 择
8、哪 一 种 模 式 取 决 于 环 境 变 量 REQUEST_METHOD 的值。 2.3 标准输出标准输出 Stdout 是 CGI 输 出 的一种 方 式, 是 指 CGI 程 序处理结束后将结果 ( 应答信息 ) 送给 WEB 服务器的一种方式。应答信息由 应答头 和 应答数 据 两部 分 组 成 , 应 答 头 信息指 定 了 是 以 纯文本 ASCII 码形式还是以 HTML 形式输出给 WEB 服务器。 3 CGI 工 作 原 理 CGI 公共网关接口是在 WEB 服务器上定义了 WEB 客户请求与应答的一种方法。当客户端的用户向 WEB 服务器发出 HTTP 请求 ( 称为 C
9、GI 请求) ,客户向服务器的请求只要属于 CGI 范围,就启动 WEB 服务器的一个 CGI 程序。它的任务是把客户的请求从环境变量和标准输入 Stdin 中取出, 并进行相应的加工处理。待处 理结束后,由 CGI 程序通过标准输出决定如何对客户的请求做出应答,将处理结果以HTML 格式回送到客户端浏览器。 CGI 定义 的 接口规 范 ,包 括 环 境 变 量 、标准 输 入 、标准 输 出等 3 部分。 2.1 环境变量环 境 变 量 是 WEB 服 务 器 与 CG1 程 序 进 行 数 据 传 递 的 途 4 CGI 编 程 实 现 CGI 程序实现一般有如下几个主要步骤:(1 )根
10、据 POST 方 法或 GET 方 法 ,接收客 户 端 提 交 的 数 据 。若以 POST 方法提交数据,则 程 序先从 CONTENT_LENGTH 环境变量 得 到数据 的 字长,然后 从标准 输 入中读 取 相应长 度 的 字李 勇 : 副教授硕士基金项目 : 国家自然基金号 (60672031) ( 智能化语义网服务中的本体集成机理与应用模式 ) - 110 - 元 年 邮局订阅号:现场总线技术应用例您的论文得到两院院士关注符串即可得到提交的数据。若以 GET 方法提交数据, 客户端提交的数 据被保 存 在QUERY_STRING 环 境 变 量中, 通 过 调 用 函 数 get
11、env( QUERY_STRING ) 来读取数据。(2 )URL 编码的 解码。 这 个 过 程 较 为 复 杂 ,在 URL 编 码 的 规则下:变量之间用 & 分开;变量与其对应值之间用= 连 接 ; 空 格 符 用 + 代 替 ;特 殊意 义 的 字 符 用 接 相 应 的 十 六 进 制网络与通信 Server 。 BOA 是一个单任务的 WEB 服务器,源代码开放、性能可靠、稳定性好,特别适合应用在嵌入式系统中。其整体的软件系统结构如图 2 所示。 BOA WEB Sever Linux Bootloader ASCII 码代替。解码即为编码的逆过程。在程序中,对于由(1 )所 述
12、 方 法 提 取的 数 据 ,当 发 现 字 符 为 + 时 ,将 它 转 换 成 空 格 ;当 发 现 字 符 为 & 时 , 意 味 着 一 个 变 量 / 值 对 的 结 束 , 在 此 处 将 字 符 切 成 几 个 字 符串 ;当再 现 字 符 为 = 时 ,意味 着 一 个 变 量 / 值 对的变量名部分的结束,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 在此再将变量 / 值对分开。最后将十六进制 ASCII 码
13、值表示的特殊字符转换成相应的ASCII 字符。 (3) 根 据 上 一 部 分 解 析 出 来 的 变 量 / 值 对 ,判断 客 户 端请 求的 含 义 , 并 传 送 消 息 给 应 用 程 序 主 进 程 , 来 完 成 客 户 端 请 求 要完成的 任 务,如 系 统 参数设 置 、远端设 备 控制等 ;然 后应用 程 序 将执行结果返回 给 CGI 进 程 ,由 CGI 进程用 printf() 函 数来产 生 HTML 源代码,再把执行结果返回 给 客户端 。 将 编写好 的 CGI 程 序 编 译成 可 执 行 文 件 放 在 WEB Server 设 置 的 CGI 目 录 下
14、 , CGI 程序就能被正确地执行。 CGI 程 序 可 以 用 任 何 程 序 设 计 语 言 编 写 , 如 Shell 脚 本 语 言、Perl 、Fortran 、Pascal 、C 语言等。但是用 C 语言编写的 CGI 程 序 具 有 执 行 速度 快 、安全 性 高 (因 为 C 语 言 程 序 是 编 译 执 行 且不可被修改)等特点,所以被使用。 5 CGI 在嵌入式 WEB 服务器中的应用一 个 嵌 入 式 应 用 系 统 , 硬 件 结 构 如 图 1 所 示 , CPU 采 用 S3C2410 处理器 ,该芯 片 主 频 高 、内部 集 成 丰 富 的 接 口 、性价
15、比高 , 内 核 采 用 ARM920T , 具 有 MMU ( 内 存 管 理 单 元 ) , 可 运 行 Linux 操作系统。另外 Nand Flash 采用 64M 的 K9F1208U0M , SDRAM 采用 32M 的HY57V561620 ,Ethernet 以 太 网 芯 片 采 用 CS8900A 。 Nand Flash SDRAM USB ARM9 (S3C2410) Ethernet PC 图2 系 统 软 件 结 构BOA WEB Server 编 译 、 安 装 、 配 置 流 程 :( 1 )从http:/www.boa.org 官 方 网 站 上 下 载BOA
16、 源 码 。( 2 )解 压# tar xzf boa-0.94.13.tar.gz ,进入 /src 目录。 (3 ) 修 改 Makefile 文 件 , 将 其 GCC 修改 为 相 应 的 嵌 入 式 arm-linux-gcc 。 ( 4 )修 改 和 配 置 主 要 是 boa.conf 和mime.types 文 件 。 将 mime.types 拷贝到 WEB 服务器根目录 /home/httpd/ 下。一个典型的 boa.conf 文件格式如下: DocumentRoot /home/httpd/html ScriptAlias /cgi-bin/ /home/httpd/c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年CGI在嵌入式WEB服务器中的应用和实现 2022 CGI 嵌入式 WEB 服务器 中的 应用 实现
限制150内