开发网站学习笔记(1)

**
开发网站概述
**

http协议报文
请求(报文头各行之间用"\r\n"隔开)

GET / HTTP/1.1表示向服务器用GET方式请求首页,使用HTTP/1.1协议

User-Agent(简称UA)为浏览器的版本信息。通过这个信息可以读取浏览器是IE还是FireFox、支持的插件等。看看IE和Chrome的UserAgent不一样

Referer:来源页面、所属页面

Accept-Encoding:服务器支持什么压缩算法。Accept-Language:浏览器支持什么语言。

响应(报文头各行之间用"\r\n"隔开)

响应码:“200” : OK;

“302” : Found 暂时转移,用于重定向; (303、307)

“404” : Not Found 未找到。 500 服务器错误。

报文头、报文体:报文正文是被渲染到界面上的,之间要有两对"\r\n"隔开。

Content-Type: text/html; charset=utf-8 表示返回数据的类型,charset正文编码。windows中写CGI程序一般都用gbk编码"text/html; charset=gbk"。报文头和正文之间一定要有两对"\r\n"隔开。

服务器通过Content-Type告诉客户端响应的数据的类型,这样浏览器就根据返回数据的类型来进行不同的处理,如果是图片类型就显示图片,如果是文本类型就直接显示内容,如果用html类型就用浏览器显示内容.常用Content-Type:text/html、image/gif、image/jpeg、text/plain、text/javascript。试着改成text/plain。这就是为什么写错了就会直接显示html的原因。
Form表单提交
<!doctype html>

点我传数据

用户名:  

密码: 

 男
 女

描述:textarea name="desc" cols="50" rows="30"> 

民族:  

临沂
北京
河南

char username[256];
char pdw[250];
char desc[256];
char sex[3];
char quyu[256];

if(cgiFormSubmitClicked(“login”) == cgiFormSuccess){
cgi FormString(“username”,username, sizeof(username));
cgi FormString(“pwd”, pwd, sizeof(pwd));
cgi FormString(“sex”,sex, sizeof(sex));
cgi FormString(“desc”, desc sizeof(desc));
cgi FormString(“quyu”, quyu sizeof(quyu));

cgiHeaderContentType(“text/html;charset=gbk”);
//printf(username);
//printf(pwd);
fprintf(cgiOut,");
fprintf(cgiOut,“用户名:%s,性别:%s,username,quyu);
fprintf(cgiOut,”");
1234567891011121314151617181920
return 0;

}

Cgi如何区分哪个页面提交的?
#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include"cgic.h"
int cgiMain() {

char modle[32] = { 0 };

char fun[32] = { 0 };

if (cgiFormSring(“model”, model, sizeof(model)) != cgiFormSuccess) {

cgiHeaderContentType(“text/html;charset=gbk”);

printf(“model参数必传”);

return 0;

}

if (cgiFormString(“fun”, fun, sizeof(fun)) != cgiFormSuccess) {

cgiHeaderContentType(“text/html;charset=gbk”);

printf(“fun参数必传”);

return 0;

}

}
if (strcmp(model), “user” == 0)

{

if (strcmp(fun, “toLigin”) == 0)

{

cgiHeaderLocation(“login.html”);

}

else if (strcmp(fun, “toRegister”) == 0)

{

cgiHeaderLocation(“toRegister.html”);

}

else if (strcmp(fun, “login”) == 0)

{

char username[256];

char pwd[250];

cgiFormstring(“username”, username, sizeof(username));

cgiFormstring(“pwd”, pwd sizeof(pwd));

//查询数据库对比用户名密码的

if (strcmp(username, “zq”) == 0 && strcmp(pwd, “123”) == 0)

{

cgiHeaderContentType(“text/html;charset=gbk”);

printf(“登陆成功”);

return 0;

}

else

{

cgiHeaderContentType(“text/html;charset=gbk”);

printf(“用户名或密码错误”);

return 0;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值