2022年用C语言技术进行CGI程序设计 .pdf
《2022年用C语言技术进行CGI程序设计 .pdf》由会员分享,可在线阅读,更多相关《2022年用C语言技术进行CGI程序设计 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、用 C语言技术进行 CGI程序设计一、CGI概述CGI(公用网关接口 )规定了 Web服务器调用其他可执行程序(CGI 程 序)的接口协议标准。Web服务器通过调用 CGI程序实现和 Web浏览器的交互, 也就是 CGI程序接受 Web 浏览器发送给 Web 服务器的信息 , 进行处理 , 将响应结果再回送给Web服务器及 Web浏览器。CGI程序一般完成 Web网页中表单 (Form)数据的处理、 数据库查询和实现与传统应用系统的集成等工作。CGI程序可以用任何程序设计语言编写, 如 Shell 脚本语言、Perl 、Fortran 、Pascal、C 语言等。但是用 C语言编写的 CGI程
2、序具有执行速度快、安全性高 (因为 C语言程序是编译执行且不可被修改)等特点。CGI接口标准包括标准输入、环境变量、标准输出三部分。1. 标准输入CGI程序像其他可执行程序一样, 可通过标准输入 (stdin)从 Web 服务器得到输入信息 , 如 Form中的数据 , 这就是所谓的向CGI程序传递数据的POST 方法。这意味着在操作系统命令行状态可执行 CGI程序, 对 CGI程序进行调试。 POST 方法是常用的方法 , 本文将以此方法为例 , 分析CGI程序设计的方法、过程和技巧。2. 环境变量操作系统提供了许多环境变量, 它们定义了程序的执行环境, 应用程序可以存取它们。 Web服务器
3、和 CGI接口又另外设置了自己的一些环境变量, 用来向 CGI程序传递一些重要的参数。CGI的 GET方法还通过环境变量 QUERY-STRING向 CGI程序传递 Form中的数据。3. 标准输出CGI程序通过标准输出 (stdout)将输出信息传送给Web服务器。传送给 Web服务器的信息可以用各种格式 , 通常是以纯文本或者HTML 文本的形式 , 这样我们就可以在命令行状态调试CGI程序, 并且得到它们的输出。下面是一个简单的CGI程序, 它将 HTML 中 Form的信息直接输出到Web浏览器。#include#includemain()int,i,n;printf(Contentt
4、ype:text/plainnn);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - n=0;if(getenv(CONTENT-LENGTH)n=atoi(getenv(CONTENT-LENGTH );for(i=0;iputchar(getchar();putchar(n );fflush(stdout);下面对此程序作一下简要的分析。:prinft(Contenttype:text/plainnn);此行通过标准输出将字符
5、串Contenttype:text/plainnn传送给 Web服务器。它是一个 MIME 头信息, 它告诉 Web 服务器随后的输出是以纯ASCII 文本的形式。请注意在这个头信息中有两个新行符 , 这是因为 Web服务器需要在实际的文本信息开始之前先看见一个空行。if(getenv( CONTENT-LENGTH)n=atoi(getenv( CONTENT-LENGTH);此行首先检查环境变量CONTENT-LENGTH是否存在。Web服务器在调用使用POST 方法的 CGI程序时设置此环境变量 , 它的文本值表示Web 服务器传送给 CGI程序的输入中的字符数目 , 因此我们使用函数
6、atoi()将此环境变量的值转换成整数, 并赋给变量 n。请注意 Web 服务器并不以文件结束符来终止它的输出, 所以如果不检查环境变量CONTENT-LENGTH,CGI程序就无法知道什么时候输入结束了for(i=0;in;i+)putchar(getchar();此行从 0 循环到(CONTENT-LENGTH-1)次将标准输入中读到的每一个字符直接拷贝到标准输出, 也就是将所有的输入以ASCII 的形式回送给 Web 服务器。通过此例 , 我们可将 CGI程序的一般工作过程总结为如下几点。1. 通过检查环境变量CONTENT-LENGTH,确定有多少输入;2. 循环使用 getchar(
7、) 或者其他文件读函数得到所有的输入;3. 以相应的方法处理输入;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 4. 通过Contenttype: 头信息 , 将输出信息的格式告诉Web 服务器;5. 通过使用 printf()或者 putchar() 或者其他的文件写函数 , 将输出传送给Web 服务器。总之,CGI 程序的主要任务就是从Web 服务器得到输入信息 , 进行处理 , 然后将输出结果再送回给 Web服务器。二、
8、环境变量环境变量是文本串 (名字/ 值对), 可以被 OSShell 或其他程序设置, 也可以被其他程序访问。它们是 Web 服务器传递数据给 CGI程序的简单手段 , 之所以称为环境变量是因为它们是全局变量, 任何程序都可以存取它们。下面是 CGI程序设计中常常要用到的一些环境变量。HTTP-REFERER:调用该 CGI程序的网页的 URL 。REMOTE-HOST:调用该 CGI程序的 Web浏览器的机器名和域名。REQUEST-METHOD:指的是当 Web 服务器传递数据给CGI程序时所采用的方法 , 分为 GET 和 POST两种方法。 GET方法仅通过环境变量 (如 QUERY-
9、STRING)传递数据给 CGI程序, 而 POST 方法通过环境变量和标准输入传递数据给CGI程序, 因此 POST 方法可较方便地传递较多的数据给CGI程序。SCRIPT-NAME: 该 CGI程序的名称。QUERY-STRING:当使用 POST 方法时,Form 中的数据最后放在QUERY-STRING中, 传递给 CGI程序。CONTENT-TYPE:传递给 CGI程序数据的 MIME 类型, 通常为 application/x-www-form-urlencodede, 它是从 HTMLForm中以 POST 方法传递数据给 CGI程序的数据编码类型 , 称为 URL编码类型。CO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年用C语言技术进行CGI程序设计 2022 年用 语言 技术 进行 CGI 程序设计
限制150内