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服务器和 CGI接口又另外设置了自己的一些环境变量,用来向
3、CGI程序传递一些重要的参数。CGI的 GET方法还通过环境变量 QUERY-STRING向 CGI程序传递 Form中的数据。3.标准输出CGI程序通过标准输出(stdout)将输出信息传送给Web 服务器。传送给 Web服务器的信息可以用各种格式,通常是以纯文本或者HTML 文本的形式,这样我们就可以在命令行状态调试CGI程序,并且得到它们的输出。下面是一个简单的CGI程序,它将 HTML 中 Form的信息直接输出到 Web浏览器。#include#include main()int,i,n;printf(Contenttype:text/plainn);名师资料总结-精品资料欢迎下载-
4、名师精心整理-第 1 页,共 7 页 -n=0;if(getenv(CONTENT-LENGTH)n=atoi(getenv(CONTENT-LENGTH);for(i=0;i putchar(getchar();putchar(n);fflush(stdout);下面对此程序作一下简要的分析。:prinft(Contenttype:text/plainn);此行通过标准输出将字符串Contenttype:text/plainnn传送给 Web服务器。它是一个 MIME 头信息,它告诉 Web服务器随后的输出是以纯ASCII 文本的形式。请注意在这个头信息中有两个新行符,这是因为 Web服务器
5、需要在实际的文本信息开始之前先看见一个空行。if(getenv(CONTENT-LENGTH)n=atoi(getenv(CONTENT-LENGTH);此行首先检查环境变量CONTENT-LENGTH是否存在。Web服务器在调用使用POST 方法的 CGI程序时设置此环境变量,它的文本值表示 Web服务器传送给 CGI程序的输入中的字符数目,因此我们使用函数 atoi()将此环境变量的值转换成整数,并赋给变量 n。请注意 Web服务器并不以文件结束符来终止它的输出,所以如果不检查环境变量CONTENT-LENGTH,CGI程序就无法知道什么时候输入结束了for(i=0;in;i+)putch
6、ar(getchar();此行从 0 循环到(CONTENT-LENGTH-1)次将标准输入中读到的每一个字符直接拷贝到标准输出,也就是将所有的输入以ASCII 的形式回送给 Web服务器。通过此例,我们可将 CGI程序的一般工作过程总结为如下几点。1.通过检查环境变量CONTENT-LENGTH,确定有多少输入;2.循环使用 getchar()或者其他文件读函数得到所有的输入;3.以相应的方法处理输入;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 7 页 -4.通过 Contenttype:头信息,将输出信息的格式告诉Web服务器;5.通过使用 printf()或者 putc
7、har()或者其他的文件写函数,将输出传送给 Web服务器。总之,CGI 程序的主要任务就是从Web 服务器得到输入信息,进行处理,然后将输出结果再送回给 Web服务器。二、环境变量环境变量是文本串(名字/值对),可以被 OS Shell 或其他程序设置 ,也可以被其他程序访问。它们是 Web 服务器传递数据给 CGI程序的简单手段,之所以称为环境变量是因为它们是全局变量,任何程序都可以存取它们。下面是 CGI程序设计中常常要用到的一些环境变量。HTTP-REFERER:调用该 CGI程序的网页的 URL。REMOTE-HOST:调用该 CGI程序的 Web浏览器的机器名和域名。REQUEST
8、-METHOD:指的是当 Web 服务器传递数据给CGI程序时所采用的方法,分为 GET 和 POST两种方法。GET方法仅通过环境变量(如 QUERY-STRING)传递数据给 CGI程序,而 POST 方法通过环境变量和标准输入传递数据给CGI程序,因此 POST 方法可较方便地传递较多的数据给CGI程序。SCRIPT-NAME:该 CGI程序的名称。QUERY-STRING:当使用 POST 方法时,Form 中的数据最后放在QUERY-STRING中,传递给 CGI程序。CONTENT-TYPE:传递给 CGI程序数据的 MIME类型,通常为 applica tion/x-www-fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年用C语言技术进行CGI程序开发 2022 年用 语言 技术 进行 CGI 程序 开发
限制150内