用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程序具有执行速度快、安全性高(因为C语言程序是编译执行且不可被修改)等特点。

CGI接口标准包括标准输入、环境变量、标准输出三部分。

1.标准输入

CGI程序像其他可执行程序一样,可通过标准输入(stdin)从Web服务器得到输入信息,如Form中的数据,这就是所谓的向CGI程序传递数据的POST方法。这意味着在操作系统命令行状态可执行CGI程序,对CGI程序进行调试。POST方法是常用的方法,本文将以此方法为例,分析CGI程序设计的方法、过程和技巧。

2.环境变量

操作系统提供了许多环境变量,它们定义了程序的执行环境,应用程序可以存取它们。Web服务器和CGI接口又另外设置了自己的一些环境变量,用来向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/plain\n\n");
n=0;
if(getenv("CONTENT-LENGTH"))
n=atoi(getenv(CONTENT-LENGTH"));
for (i=0;i
putchar(getchar());
putchar ('\n');
fflush(stdout);
}

时间: 2024-10-29 02:53:34

用C语言技术进行CGI程序设计的相关文章

CCAI 2017 | 专访德国语言技术领军者 Hans Uszkoreit:深度学习还不足以解决 NLP 核心问题

会前,我们采访到了大会 Keynote 嘉宾.德国人工智能研究中心科技总监 Hans Uszkoreit 博士. Uszkoreit 博士是中德两国人工智能合作的核心人物,负责德国人工智能研究中心在中国的所有合作项目,今年 3 月,他刚被任命为在北京新成立的人工智能技术中心(AITC)总监兼首席科学家.在访谈中,Uszkoreit 博士谈到了人工智能在工业 4.0 和商业智能上的应用,以及中.美.欧在人工智能领域的差异. 对于他的老本行,Uszkoreit 博士认为,语言技术是人工智能的核心部分

C语言线程控制的程序设计

问题描述 C语言线程控制的程序设计 编写一个程开启3个线程,的ID分别为A.B.C每个线程将自己的ID在线程上打印出来10遍,要求输出结果按照ABC的顺序显示: 如:ABCABC....依次递推 解决方案 用一个互斥锁加三条件变量就好了啊,首先初始化时设置A条件,A执行打印后设置B条件,B执行打印后设置C条件,C执行打印后设置A条件这样循环......... 解决方案二: 这个题目的考察点是如何保护共用数据吧,给数据加好锁就OK了 解决方案三: 用3个互斥,在线程里等待条件成立,然后执行动作 解

本CSDN博主将与北京航天航空大学出版社合作出版<嵌入式C语言技术实战开发>一书

本书作者由以下成员合作编写:     杨源鑫,主编,毕业于广州科技贸易职业学院电子应用技术专业,在校期间一并考取了华南理工大学本科数字媒体艺术专业.2015年7月工作至今,任伟易达集团嵌入式系统工程师一职,主要从事单片机,linux,Android底层开发等相关的技术.    侯继红,副主编,广州科技贸易职业学院电子信息工程技术专业教师,主要担任单片机应用技术.CPLD/FPGA应用技术.PCB应用技术课程的教学工作及企业项目开发工作.有丰富的教学经验及工程项目设计实践经验,近几年,通过CDE创

编写C函数的技术-《lua程序设计》 27章 学习

1.数组操作 void lua_rawgeti(lua_State * L ,int index,int key) void lua_rewseti(lua_State * L,int index,int key) index表示table在栈的位置,key表示元素在table中的位置 test.lua内容 tab = {"a","b","c","c","e","f","g&q

CGI技术原理

一.CGI技术 1.1 CGI的提出 CGI是外部扩展应用程序与WWW服务器交互的一个标准接口.按照CGI标准编写的外部扩展应用程序可以处理客户端(一般是WWW浏览器)输入的协同工作数据,完成客户端与服务器的交互操作.这在实际应用中非常有用,如可以编写CGI外部扩展程序来访问外部数据库,客户端用户可以通过它和WWW服务器来进行数据查询.CGI一般分两种:标准CGI和缓冲CGI.所有的WWW服务器均应支持标准CGI,按标准CGI编写的程序与具体的WWW服务器无关.而按缓冲CGI编写的程序与WWW服

《程序分析方法》——1.2 程序设计语言的发展趋势

1.2 程序设计语言的发展趋势 Turbo Pascal编译器的主要编写者以及.NET框架.Delphi和C#之父--Anders Hejlsberg认为,相对于近几十年来计算机硬件的飞速发展,程序语言的改进不是很明显,主要的原因在于人们更关注"工具"."框架"或"开发方法"的变革和创新,而忽略了语言的改进.程序设计离不开程序设计语言,程序设计语言与"工具"."框架"或"开发方法"等一样

《C语言开发从入门到精通》一1.5 技术解惑

1.5 技术解惑 C语言技术博大精深,能够应用于多个领域,因此,一直深受广大程序员的喜爱.作为一名初学者,肯定会在学习中遇到许多疑问和困惑.为此在本节的内容中,笔者将自己的心得体会传授给广大读者,帮助读者解决困惑. 1.5.1 学习C语言还有用吗 当今各种新技术.新思想.新名词层出不穷,令人眼花缭乱.新与旧混杂在一起,让人有目不暇接之感. 无论是初学者还是高级程序员,都在心底藏着一个问题:C语言会不会只是人们学习程序设计的基石,而没有了实际的使用价值?答案当然是否定的,笔者在此建议读者要牢记:越

为什么会有这么多种程序设计语言?

传说人类建造通天塔触怒上帝,上帝施法使人类语言混乱彼此之间无法交流.这就是说各种各样的语言其实就是祸乱之源--只会导致交流的不便.可是看看如今的程 序设计语言的数量,你会怀疑人类是否又在造"通天塔"了?真的有这么多语言的必要吗?我到底要学习多少种程序设计语言才够用呢? 根据维基的资料,可以称得上相对"主流"(有人用.有文档)的程序设计语言至少有600种, 还有大量的商业化失败.实用性不高.语言小众(这里的"语言"指的是编码的语言,一般的程序设计语

《Python语言程序设计》—— 导读

前 言 本书假设你是一位先前没有任何程序设计经验的程序员新手.那么,什么是程序设计呢?程序设计是指使用程序设计语言编写程序以解决问题.不论你使用的是哪种程序设计语言,解决问题和程序设计的根本都是一致的.你可以使用任何一种像Python.Java.C++或C#这样的高级程序设计语言来学习程序设计.一旦知道如何使用其中一门语言编写程序,那么如何使用其他语言编写程序就很容易,因为编写程序的基本技能都是一样的. 那么,使用Python学习程序设计的优势在哪里呢?Python易于学习,且编程有趣.Pyth