栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

用C++编写我的第一个CGI程序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用C++编写我的第一个CGI程序

文章目录
  • 前言
  • 一、CGI
  • 二、使用步骤
    • 1.安装Apache
    • 2.编写我的第一个CGI程序
    • 3.访问我的第一个CGI程序
    • 4.补充
      • 4.1 URL的含义
      • 4.2 我的第一个CGI程序为什么这么写
        • 4.2.1 首行的Content-type
        • 4.2.2 其余的部分


前言

本文记录了我在准备数据库应用程序大赛过程中,学习用C++编写CGI后端程序的历程。本文参考了

WEB之CGI----CGI详解(原理,配置及访问)
CGI入门一:使用C++实现CGI程序
C++后台实践:古老的CGI与Web开发


一、CGI

CGI(Common Gateway Interface),直译为“通用网关接口”,是一个接口协议( 协议就是大家公认的一套标准)规定了web服务器如何与CGI应用程序通信。

进行CGI后端开发,就是编写一个CGI程序。CGI程序是放置在服务器上的一段可执行程序。作为HTTP服务器的时候,客户端可以通过GET或者POST请求来调用这可执行程序。


二、使用步骤 1.安装Apache

安装Apache的目的是在本机上安装一个web服务器,通过浏览器访问本机服务器(localhost, 指你所在的计算机本身,在 windows 系统它成了 127.0.0.1 的别名 )进而访问服务器上的CGI程序
Apache安装指导


2.编写我的第一个CGI程序

打开vs2019,创建一个空项目,编写一个.cpp程序如下

#include
using namespace std;

int main()
{
	cout << "Content-Type:text/htmlnn" << endl;
	cout << "Hello World ! This is my first CGI program n";


}

把该程序编译后生成的exe文件放到目录为C:UsersWCJJDesktopApache24cgi-bintest中,并把文件扩展名该为.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/htmlnn"是一个文件的标志,告诉浏览器以html的语法来解析此文件,而不是去下载它(注意末尾需要两个换行,即一个空行,这是标准)。只要我们需要输出内容到浏览器,都得加这一句话在最前面,记住就好。(关于这部分更详细内容在开头的参考连接中)

4.2.2 其余的部分

后面的cout语句就是输出到浏览器上的信息,注意需要用html的语法才能正常显示在浏览器上。只要通过printf,就可以将任何html代码输出在浏览器里。而且,因为是用C/C++写的程序,所以C/C++下的一切函数,都可以用在CGI程序里,当然也包括在通过ODBC的API集对数据库进行数据交换。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/916889.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号