C语言开发网站

在正式开发之前,先了解一下网站的原理:

请求,处理,响应

在浏览器的network中可以看到浏览器和服务器的交互过程。

请求一个网站的本质就是咱们的浏览器和服务器交互的一个过程。

比如说咱们请求www.baidu.com,就是咱们的浏览器向服务器发送一个请求,我要请求www.baidu.com

服务器给咱们返回一个消息Response。浏览器向服务器发送请求,服务器吧咱们所请求的内容返回来。

C语言开发网站_第1张图片

 开发动态网站需要什么

密码明文传输是容易被劫持   参考网络原理

开发一个网站需要什么

需要一台web服务器,帮助开发者实现网路请求处理等。

如果不使用web网站服务器,需要我们自己来写socket/多线程  相当于自己做一个web服务器。

需要开发者开发服务器端程序,CGI。进行用户业务逻辑的处理。浏览器根据用户的操作向web服务器发送请求,web服务器的程序对浏览器的请求进行处理,然后把处理的结果响应给客户端。

CGI

什么是CGI?

当浏览器的一个请求到来的时候,web服务器运行服务服务器端对应的可执行程序,把浏览器的请求放到标准化输入中,可执行程序运行后,web服务器把程序的标准化输出,内容返回给浏览器。

CGI开发效率,运行效率低,但是开发原理和java,asp.net,php等是互通的,所以不用纠结cgi是过时的技术,在嵌入式设备中cgi还是应用很广的。

开发CGI流程:开发一个exe程序,放到web服务器对应目录下,浏览器访问这个exe即可运行。

运行CGI需要网站服务器。

通过scanf就可以读取到客户端的请求,通过printf返回给客户端。

现在我们可以开发第一个cgi程序

vs中新建,选择visual c++-》win32项目 选择控制台,在源文件上右键添加新建项c++,文件名后缀用.c

#include

int main()

{

printf("Content-Type:text/html;charset=gbk\r\n\r\n");

printf("hello world");

return 0;

}

生成的exe文件改名为cgi放到网站根目录下,浏览器访问,返回输出。分析原理:浏览器请求cgi服务器,后台执行cgi程序,并且把执行结果返回给浏览器。

简化开发配置:

每次修改代码都要生成,exe改为cgi,复制到网站的根目录。很麻烦。

直接生成cgi:项目右键属性目标文件扩展名“”改为.cgi

项目根目录作为网站根目录:改apache的http.conf的documentroot

cgi直接生成到网站根目录,也就是项目根目录,项目右键属性,输出目录田"./"

获取请求参数:

有的程序运行之前需要给出一些参数,网站程序不能直接从标准输入scanf,需要通过地址栏中QueryString传入

用getenv从环境变量中获取QueryString:char*queryString=getenv("QUERY_STRING);

报错

解决方案:

https://jingyan.baidu.com/article/49711c616b8a1ffa441b7cdc.html

 

 

你可能感兴趣的:(C语言开发网站)