Skip to content

zyfjeff/httpserver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

httpserver

学习socket网络编程,学习C++类的封装

参考我总结的网络编程实践 试图解决其中提到的一些问题。网络编程最佳实践

第一期任务 (已经完成)

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 文档展示

About

学习socket网络编程,学习C++类的封装

Resources

Stars

Watchers

Forks

Packages

No packages published