一个朴素的基于HTTP协议的项目
2017-07-18 17:39
260 查看
1.这个项目是干嘛的?
这个项目主要是实现前后端数据的连通。从前端网页收到的数据经过处理一直存储到后台的mysql数据库。2.项目所用到的知识
1.什么是HTTP协议:参考我往期博客:
http://blog.csdn.net/sayhello_world/article/details/75018519
2.什么是mysql,怎么用?
http://blog.csdn.net/sayhello_world/article/details/75304003
3.什么叫CGI
看百度:
http://baike.baidu.com/item/CGI/607810
项目大体思路
0.数据怎么传输?
1.网页怎么向后台传输数据。
页面发送消息,传给后台cgi。我们先看HTTP头部信息。
我们这里用调用自己写的相关CGI函数实现从浏览器发送过来数据的处理。
这里只简单介绍GET方法与POST方法,其他方法与之基本类似。
注意使用POST这种方法传输数据时,HTTP在数据发送完后,并不会发送相应的数据传输完毕提示信息,所以HTTP服务器提供了另一个环境变量CONTENET_LENGTH,该环境变量记录了传输过来了多少个字节长度的数据(单位为字节),所以在编写CGI程序时,如果method为POST,就需要通过该变量来限定读取的数据的长度。
接下来我们看目前的网页怎么发送数据的?
那么我们可以模仿他们,如果是GET方法从浏览器获得的数据写入URL中。后台从URL中读取数据。
2.子进程怎么处理及存储数据?
子进程通过程序替换调用相关path位置的程序,去处理数据。我们可以调用wwwRoot下的默认主页(indx.html)信息来进行替换。
index.html的动作处理是将数据插入数据库中或查询数据库现有数据。
所以,这里用到了CGI。
3.数据库怎么样插入以及查询
插入:先拿到方法,如果是GET方法,直接把数据拷贝到buff里。
如果是POST方法,也就是说数据在正文,需要从正文一个一个读取数据,长度为CONTENT_LENGTH。
有了数据之后,就可以进行插入或者查询操作了。
因为数据库建学生信息表的时候建了4个信息(姓名,性别,学校,爱好),所以这里给4个数组就可以了。
当遇到=和&之间时,这里就是要插入数据库的数据。
通过调用数据库语句插入/查找。
//这里给出插入的。 sql obj("root","127.0.0.1","","student_info",3306); obj.connect(); obj.insert(argv[0],argv[1],argv[2],argv[3]);
着重说明的是,这里的mysql库是下载并且新连接的库,所以我们原本的引入库的方法都不行。
#include<sqlclient.h> //或 #include"sqlclient.h"
所以这里需要动态加载库。
项目遇到的问题
1.mysql开始不会用的问题。2.动态库不会加载的问题。
3.开始不知道怎么处理前后端的数据传输。
4.控制output的shell不会写
项目源码
github:https://github.com/Noctis-xjw/Http项目截图
相关文章推荐
- 基于Netty写一个http协议的服务
- HTTP协议中的短轮询、长轮询、长连接和短连接 序言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码。在研究一个项目的时候,源码里面用到了HTTP的长轮询。由于之前没太
- HTTP详解--基于HTTP的功能追加协议
- [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器
- 基于netty4的tcp消息转发服务--外包接的一个小项目
- 小项目心得体会.对HTTP协议格式更深的理解.
- j2ee的web项目,在浏览器中发起一个该项目中html页面的绝对地址,也是发起的一个http url请求,请求的响应报文的结果就是该html页面的所有html代码
- 一个基于POP3协议进行邮箱账号验证的类
- 突破防火墙——基于Http协议的Java隧…
- 微服务框架Finagle介绍 Part2: 在Finagle中开发基于Http协议的应用
- Tomcat的四种基于HTTP协议的Connector性能比较
- Linux网络编程一步一步学-自己编写一个HTTP协议的目录浏览和文件下载服务器
- 1.如何去掉一个项目的前缀,比如http://note.baixiaodu.com/note/news.do, 我要去掉news.do前面的note?求大神指教
- Tomcat 6 支持 NIO -- Tomcat的四种基于HTTP协议的Connector性能比较
- 基于HTTP的QQ协议之我所见
- php项目有负载,$_SERVER['HTTP_X_FORWARDED_FOR']函数在不同系统中获取到的值形式不一样,ios系统苹果手机只能获取到一个ip(113.87.214.xxx),而安卓手机获取到的是2个ip中间逗号隔开的形式(113.87.214.xxx , xxx.xxx.xxx.xxx)
- 基于HTTP协议的C/S架构中服务器如何获取用户身份
- 【Maven】创建一个结构清晰基于Maven的JavaWeb项目
- 在eclipse导入一个Web项目后,出现“http://java.sun.com/jsp/jstl/core”错误
- 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。