cgi概述
公共网关接口(Common Gateway Interface,CGI) 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、C ++、Java、VB 和Delphi 等。CGI分为标准CGI和间接CGI两种。标准CGI使用命令行参数或环境变量表示服务器的详细请求,服务器与浏览器通信采用标准输入输出方式。间接CGI又称缓冲CGI,在CGI程序和CGI接口之间插入一个缓冲程序,缓冲程序与CGI接口间用标准输入输出进行通信.
编写第一个cgi程序
- 本文采取c++编写,编写如下程序:
#include <iostream>
using namespace std;
int main(){
cout << "Content-type:text/html\r\n\r\n";
cout << "<html>\n";
cout << "<head>\n";
cout << "<title>Hello World - First CGI Program</title>\n";
cout << "</head>\n";
cout << "<body>\n";
cout << "<h2>Hello World! This is my first CGI program</h2>\n";
cout << "</body>\n";
cout << "</html>\n";
return 0;
}
随后编译运行生成.exe文件,将xx.exe文件修改为xx.cgi,程序代码就结束了
2. 下面配置一下apache服务器。
apache服务器下载地址:https://httpd.apache.org/download.cgi
步骤如下:
下载完之后修改配置文件:
首先修改源目录:这里根据自己安装的目录修改即可
因为apache默认端口为80,这里修改为81,防止待会启动报错端口被占用。。
打开cmd,安装apache服务,发现报错443被占用
原因是存在配置文件使用了443
修改另一个配置文件的端口,如下:
这里可以修改441或者442…不冲突即可。
至此,重新启动apache服务即可,直接点击Apachemonitor启动即可,没报错说明启动成功。
访问地址:http://localhost:81/,出现如下即服务开启成功!
3. 访问自己的cgi程序
将xx.cig程序放到Apache的cig-bin目录下,如下所示:
访问地址:http://localhost:81/cgi-bin/cgi.cgi,出现如下信息:
至此,第一个cgi程序就完成了!