文章目录
前言
本文记录了我学习用C++编写CGI后端程序的历程。
一、CGI
CGI(Common Gateway Interface),直译为“通用网关接口”,是一个接口协议( 协议就是大家公认的一套标准)规定了web服务器如何与CGI应用程序通信。体系结构如图:
进行CGI后端开发,就是编写一个CGI程序,并将CGI程序放置在服务器cgi-bin
目录上。
二、使用步骤
1.安装Apache
本次使用Apache服务器。安装Apache的目的是在本机上安装一个web服务器,通过浏览器访问本机服务器(localhost, 指你所在的计算机本身,在 windows 系统它成了 127.0.0.1 的别名 )进而访问服务器上的CGI程序
Apache安装指导
2.编写我的第一个CGI程序
打开vs2019,创建一个空项目,编写一个.cpp程序如下
#include<iostream>
using namespace std;
int main()
{
cout << "Content-Type:text/html\n\n" << endl;
cout << "<h2>Hello World ! This is my first CGI program </h2>\n";
}
把该程序编译后生成的exe文件放到目录为C:\Users\WCJJ\Desktop\Apache24\cgi-bin\test中,并把文件扩展名该为.cgi 。这样我们就得到了一个cgi程序。
3.访问我的第一个CGI程序
用浏览器(客户端)通过 本机上的apache服务器(web服务器) 访问 我的CGI后端程序:打开浏览器,输入http://localhost:8088/cgi-bin/test/helloworld.cgi
就可以运行这个CGI程序并在浏览器上看见其返回的html文件的渲染效果。
4.补充
4.1 URL的含义
以下是摘自<<数据库系统概念第6版>>对URL的解释 我们刚刚输入的http://localhost:8088/cgi-bin/test/helloworld.cgi,其中第一部分是http,表明超文本传输协议;第二部分是localhost:8088,给出了我这台装有Apache服务器(web服务器)的笔记本电脑(机器);第三部分cgi-bin/test/helloworld.cgi描述了我的第一个CGI程序在该笔记本上的路径名(位置)
4.2 我的第一个CGI程序为什么这么写
4.2.1 首行的Content-type
第一个cout输出的"Content-type:text/html\n\n"是一个文件的标志,告诉浏览器以html的语法来解析此文件,而不是去下载它(注意末尾需要两个换行,即一个空行,这是标准)。只要我们需要输出内容到浏览器,都得加这一句话在最前面,记住就好。
4.2.2 其余的部分
后面的cout语句就是输出到浏览器上的信息,注意需要用html的语法才能正常显示在浏览器上。只要通过printf,就可以将任何html代码输出在浏览器里。而且,因为是用C/C++写的程序,所以C/C++下的一切函数,都可以用在CGI程序里,当然也包括在通过ODBC的API集对数据库进行数据交换。
参考
WEB之CGI----CGI详解(原理,配置及访问)
CGI入门一:使用C++实现CGI程序
C++后台实践:古老的CGI与Web开发
Web Programming in C++