这个项目的来源是某个公司的校招笔试题 题目:开发一个 HTTP 下载服务器 要求
- 在 linux 中开发和运行
- 只允许使用 C 语言,不得使用 C++等其它语言
- 至允许使用 linux 提供的系统调用和库函数,不得使用其它第三方库
- 有配置文件
- 能够写日志
- 只需支持 HTTP GET 方法,其它方法返回 405 状态码即可
- 不需要支持 CGI
- 目录结构:
bin 一存放可执行程序
etc 一存放配置文件
HTTP 下载服务器 log 一存放日志文件
docroot 一存放用户可以下载的文件
提示:
- 采用多线程、epoll、cache 等技术来提高服务器对高并发的支持。
- 用 ab 进行压力测试,每秒请求次数越高则得分越高
使用 "ab" 来测试 GET 与 POST 请求:
GET 请求:
ab -n 100 -c 10 http://192.168.80.128:8000/670.jpg
ab -n 100 -c 10 http://192.168.80.128:8000/books.jpg
ab -n 100 -c 10 http://192.168.80.128:8000/home.html
POST 请求:
ab -n 100 -c 10 -p adcfg.json -T 'text/plain' http://192.168.80.128:8000/
在浏览器中按照如下格式输入进行测试:
GET 请求:
http://192.168.80.128/670.jpg
http://192.168.80.128:8000/books.jpg
- threadpool 支持
- 简化代码
- 完善日志功能
- CGI支持
- 其它HTTP Method