# httpserver **Repository Path**: rl099/httpserver ## Basic Information - **Project Name**: httpserver - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-13 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # httpserver 学习socket网络编程,学习C++类的封装 ## 参考我总结的网络编程实践 试图解决其中提到的一些问题。[网络编程最佳实践](http://www.zyfforlinux.cc/2015/01/27/%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/) ## 第一期任务 (已经完成) 2015/03/04 * 完成了基本的框架搭建,使用scons管理项目 * 完成了tcp socket的简单封装 * 实现最简单的串行接入请求,处理请求 * 完成简单的解析HTTP协议 * 根据请求的内容,构造HTPP响应报文 存在的问题: * 串行接入请求,不能实现并发 * 解析http协议的时候是单字符读取,效率低,应该使用缓存 * 目前只支持GET请求,头部字段没有分析 ## 第二期任务 * 加入fork(完成) * 支持分析请求头(完成,目前是读取请求头,直接丢弃) * 支持自定义404返回页面(完成) * 加入地址重用(完成) * 处理accept返回结果和处理信号中断(完成) * 处理socket fd引用次数问题(完成) * 解析HTTP协议的时候使用缓存 * 解决一些语法层面的问题(完成) * 增加头部字段,Content-Length和Server(完成) * 支持MIME(部分)(完成) * C++ fstream读取文件忽略空格问题改成mmap存储IO映射(完成) ### 2015/03/06 目前可以基本跑起来,服务静态文件。 ### 2015/03/08 目前支持MIMI,可以完成对图片 CSS文件,普通文件,html 文档展示