自主实现小型http1.0服务器
主要技术栈:http协议,socket,CGI技术,线程池
文章目录
一、项目简介
该项目是一个基于Http和Tcp协议自主实现的WebServer,用于实现服务器对客户端发送过来的GET和POST请求的接收、解析、处理,并返回处理结果给到客户端。

为了更好的学习网络协议等知识,对http的协议进行更深一步的了解
一、整体框架
1.初始化tcpserver,和一些映射关系,最后开始监听新链接
HttpServer http_server(port);
Util::map_init();
Util::InitSuffix();
http_server.Init();
http_server.Loop(); //进行监听
2.将获取的链接构建任务,放到线程池任务队列
Task t(sock);//构建任务
_thread_pool->PushTask(t);
3.对链接请求进行解析
包括接受数据,解析数据
bool RecvHttpRequest() //读取解析
{
if(stop)return false;
RecvHttpREqueseLine(); //读取状态行
if(stop)return false;
RecvHttpREqueseHdader();
if(stop) return false;
PareseHttpRequestlien(); // 解析
PareseHttpRequestHeader();
RecvHtppReqyestBoby(); //读取正文
if(stop) return false;
return true;
}
4.构建响应
BuilbHttpResponse() //构建响应
5.返回响应
SendHttpResponse() // 发送响应
本文介绍了一个基于HTTP和TCP协议的自研WebServer项目,该服务器能处理GET和POST请求,涉及技术包括HTTP协议、socket编程、CGI技术和线程池。项目通过初始化TCP服务器,监听新连接,使用线程池处理任务,解析请求并构建响应,然后返回给客户端。

422

被折叠的 条评论
为什么被折叠?



