micro_httpd是一个轻量级的http服务器 (http://www.acme.com/software/micro_httpd/),micro_httpd从xinetd运行,性能较差,但对于负载较小的网站,micro_httpd是能胜任的,其实现了http服务器的一些基本特征功能:
1. ..文件名探测以保证安全;
2. 常用MIME类型识别;
3. Trailing-slash重定向;
4. index.html首页的处理;
5. 目录列表;
micro_httpd借助于xinetd(inetd)运行,xinetd的原理与机制参考:
http://blog.chinaunix.net/space.php?uid=20196318&do=blog&id=172787
借助xinetd,microhttpd在处理请求时,可从标准输入读取客户端的请求,向标准输出写入对客户端的响应。所以micro_httpd的核心在于分析http请求参数,并发送响应数据。
micro_httpd的部署与使用
1. 下载micro_httpd的源代码包(http://www.acme.com/software/micro_httpd/)并安装;
2. 设置micro_httpd的服务端口号,编辑/etc/services文件,为其分配一个未用的端口号,本例中使用48888,在/etc/services文件末尾添加两行:
micro_httpd 48888/tcp
micro_httpd 48888/udp
3. 添加micro_httpd的xinetd配置文件:
vi /etc/xinetd.d/micro_httpd
service micro_httpd
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/local/sbin/micro_httpd
server_args = /var/www/html
disable = no
flags = IPv4
}
# 其中server_args为配置micro_httpd运行时的根目录
4. 重启xinetd服务以加载新的配置。/etc/init.d/xinetd restart
5. 测试,拷贝测试文件到micro_httpd的根目录,并通过浏览器访问:
http://192.168.0.65:48888,通过点击目录中文件列表的超链接,可以查看到各个文件的内容。
http协议相关
1. 请求与响应报文格式
http://apps.hi.baidu.com/share/detail/24694860
http://blog.csdn.net/yang3290325/archive/2009/01/05/3710976.aspx
2. 查看http请求与响应内容头
http://www.51testing.com/?167686/viewspace-106751.html
http://blog.sina.com.cn/s/blog_5f1fe33f0100d9zp.html
3. URL Encoding:
http://www.ruanyifeng.com/blog/2010/02/url_encoding.html
http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
micro_httpd源代码分析