C语言编写cgi程序(下)

在<<C语言写cgi程序(上)>>中,我们大概知道了cgi的工作原理。今天我们看看c语言写的cgi,是怎么来处理数据的。
  c语言中,通过getenv("环境变量")函数来获取页面传送给cgi的数据,一般通过printf()返回给页面一些数据。
 其中C语言中的环境变量包括:
 HTTP-REFERER:调用该CGI程序的网页的URL。 
 REMOTE-HOST:调用该CGI程序的Web浏览器的机器名和域名。 
 REQUEST-
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-form-url encodede〃,它是从HTML Form中以POST方法传递数据给CGI程序的数据编码类型,称为URL编码类型。

CONTENT-LENGTH:传递给CGI程序的数据字符数(字节数)。

通过例子,可以更好的理解cgi和其工作原理。
1.搭建web服务器
我们选用的webServer是轻量级服务器mongoose。mongoose源码下载地址:http://pan.baidu.com/s/1mg0vs4w
mongoose是一个开源项目,有兴趣可以研究一下。
在Linux系统下编译源码:make linux

通过运行命令./mongoose启动服务器或者./mongoose &后台运行。
输入http://IP:8080测试服务器:

2.编写index.html页面,代码如下:

页面打开如下:
 

3.编写我们的cgi程序
 
编译该程序生成cgi文件

4.点击页面按钮,看下效果:

 
OK,一个简单的cig写完了,当然可以调用环境变量接收WEBSERVER传过来的数据,做更复杂的操作。

时间: 2024-11-08 21:21:01

C语言编写cgi程序(下)的相关文章

C语言编写cgi程序(上)

cgi简介: 公共网关接口CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位.CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程.CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体.(百度介绍) CGI可以用任何语言编写,使用C语言编写CGI,可以提高系统的效率. 未完待续...

编写CGI程序步骤

CGI common gateway interface 可以让一个客户端,从网页浏览器向服务器请求数据, 这是描述客户端和服务器程序之间传输数据的一种标准. CGI是运行在服务器上的程序,提供同客户端HTML页面的接口,不限定使用语言 编写CGI程序步骤 创建目录 编写CGI程序 开启服务器 使用浏览器访问 原文地址:https://www.cnblogs.com/themost/p/8454654.html

使用cgic库搭配ctemplate编写cgi程序

这两天在写开发板上的cgi程序,使用的是C语言编写的我们知道用C语言来写cgi程序是件非常痛苦的事情,我们常常要把html代码写到c语言中进行输出,而且要写一些方法从环境变量中获取post或者get的值.然而我们使用cgic和ctemplate的话帮我们简化了不少的操作,并能把html和C语言分离开来.下面我们来看看怎么使用cgic和ctemplate来优雅的写个cgi程序,因为开发板在公司了,我这里就用pc的Wamp做cgi的服务器了. 配置apache支持cgi. 首先我们先配置apache

搞定linux上MySQL编程(六):C语言编写MySQL程序(结)

[版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 在实际应用中,我们不可能在命令行登录进数据库进行数据的查询.插入等操作,用户一般是使用一个界面良好的应用程序软件来对数据进行管理.为了方便应用程序的开发,MySQL提供了多种编程语言(C.perl.php等)的编程接口,供开发者使用. 对于C语言来说,MySQL提供了C语言客户机库,它允许从任何C程序的内部访问MySQL数据库,客户机实现API,API定义了客户机如何建立和执

《用C++语言编写一个程序,求PI的值》

1 //编写一个C++程序求PI的值 2 /* 3 PI=16arctan(1/5)-4arctan(1/239) 4 其中arctan用如下形式的极数计算: 5 arctan=x-(x^3/3)+(x^5/7)-(x^7/7)+... 6 */ 7 #include<iostream> 8 using namespace std; 9 double arctan(double x){ 10 double sqr = x*x; 11 double e = x; 12 double r = 0;

用C语言开发CGI程序

1 下载apache程序 apache链接:http://archive.apache.org/dist/httpd/binaries/win32/httpd-2.2.21-win32-x86-no_ssl.msi 2 程序:#include<stdio.h>int main(int argc,char *argv[]){ printf("Content-type:text/html\n\n");//注意:必须要有2个\n printf("hello world&

EasyWebServer编写CGI程序的环境变量

示例: SERVER_SOFTWARE=EasyWebServer/1.9 SERVER_PROTOCOL=HTTP/1.1 SERVER_PORT=80 SERVER_NAME=aozima-notebook REMOTE_ADDR=127.0.0.1 GATEWAY_INTERFACE=CGI/1.1 DOCUMENT_ROOT=E:\webroot SCRIPT_NAME=/cgi-bin/dump.exe REQUEST_METHOD=GET QUERY_STRING=get1=1&ge

几种语言的CGI编程

为了了解PHP.JSP.ASP出现之前人们写网站的方法,洒家研究了一波CGI,使用C.Python.batch.shell script语言写了几个简单的网页. CGI即通用网关接口,指web服务器调用编程语言编写的程序的一个接口.洒家用的是Apache的CGI,QUERY_STRING.REMOTE_ADDR.REQUEST_URI等参数是通过环境变量传递给CGI程序的,请求主体(POST数据)作为CGI程序的标准输入(stdin),而CGI程序的标准输出(stdout)作为HTTP响应的部分

cgic 写CGI程序

CGIC是C语言CGI库函数,用于编写CGI程序 CGIC 主要完成以下功能: * 对数据进行语法分析 * 接收以 GET 和 PSOT 两种方式发送的数据 * 把 FORM 中的不同域连接成连续的串 * 为检索 FORM 数据而提供字符串 , 整数 , 浮点以及单项和多项选择功能 * 为数字字段提供边界检测 * 把 CGI 环境变量加载到非空的 C 串中 * 为调试而捕捉 CGI 状态 如何写CGIC应用程序 任何cgic 应用程序必须连接到cgic.c,如果在Linux 下可以用Makefi