自主实现小型的http服务器

本文介绍了一个基于HTTP和TCP协议的自研WebServer项目,该服务器能处理GET和POST请求,涉及技术包括HTTP协议、socket编程、CGI技术和线程池。项目通过初始化TCP服务器,监听新连接,使用线程池处理任务,解析请求并构建响应,然后返回给客户端。

自主实现小型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() // 发送响应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值