micro_httpd服务器实现机制分析

简介: micro_httpd是一个轻量级的http服务器 (http://www.acme.com/software/micro_httpd/),micro_httpd从xinetd运行,性能较差,但对于负载较小的网站,micro_httpd是能胜任的,其实现了http服务器的一些基本特征功能: 1.  .

micro_httpd一个轻量级的http服务器 http://www.acme.com/software/micro_httpd/),micro_httpdxinetd运行,性能较差,但对于负载较小的网站,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

 

借助xinetdmicrohttpd在处理请求时,可从标准输入读取客户端的请求,向标准输出写入对客户端的响应。所以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_httpdxinetd配置文件:

    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源代码分析

 micro_httpd.rar   

目录
相关文章
|
7月前
|
存储 监控 Java
【深度挖掘Java性能调优】「底层技术原理体系」深入探索Java服务器性能监控Metrics框架的实现原理分析(Counter篇)
【深度挖掘Java性能调优】「底层技术原理体系」深入探索Java服务器性能监控Metrics框架的实现原理分析(Counter篇)
168 0
|
4月前
|
缓存 应用服务中间件 nginx
Web服务器的缓存机制与内容分发网络(CDN)
【8月更文第28天】随着互联网应用的发展,用户对网站响应速度的要求越来越高。为了提升用户体验,Web服务器通常会采用多种技术手段来优化页面加载速度,其中最重要的两种技术就是缓存机制和内容分发网络(CDN)。本文将深入探讨这两种技术的工作原理及其实现方法,并通过具体的代码示例加以说明。
406 1
|
7月前
|
监控 算法 Java
【深度挖掘Java性能调优】「底层技术原理体系」深入探索Java服务器性能监控Metrics框架的实现原理分析(Gauge和Histogram篇)
【深度挖掘Java性能调优】「底层技术原理体系」深入探索Java服务器性能监控Metrics框架的实现原理分析(Gauge和Histogram篇)
97 0
|
6月前
|
监控 关系型数据库 MySQL
|
2月前
|
机器学习/深度学习 弹性计算 缓存
阿里云服务器经济型e实例与通用算力型u1实例对比分析与选择指南
在阿里云服务器的实例规格中,经济型e实例和通用算力型u1实例是很多个人和普通企业级用户常见的选择,经济型e实例与通用算力型u1实例的主要区别在于性能、应用场景及价格策略。本文将详细对比这两种实例的性能、应用场景及价格策略,以供参考。
|
2月前
|
人工智能 运维 Kubernetes
87cloud案例分析:阿里云国际服务器如何支持在线教育
87cloud案例分析:阿里云国际服务器如何支持在线教育
|
2月前
|
弹性计算 安全 Linux
阿里云国际版ECS云服务器ping不通的原因分析
阿里云国际版ECS云服务器ping不通的原因分析
|
2月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
43 1
|
2月前
|
域名解析 弹性计算 缓存
阿里云国际云服务器全局流量分析功能详细介绍
阿里云国际云服务器全局流量分析功能详细介绍
|
3月前
|
存储 安全 算法
服务器数据恢复—Raid磁盘阵列的安全性分析及常见故障
出于尽可能避免数据灾难的设计初衷,RAID解决了3个问题:容量问题、IO性能问题、存储安全(冗余)问题。从数据恢复的角度讨论RAID的存储安全问题。 常见的起到存储安全作用的RAID方案有RAID1、RAID5及其变形。基本设计思路是相似的:当部分数据异常时,可通过特定算法将数据还原出来。以RAID5为例:如果要记录两个数字,可以通过再多记录这两个数字的和来达到记录冗余性的目的。例如记录3和5,同时再记录这2个数字的和8。在不记得到底是几和5的情况下,只需要用8-5就可以算出这个丢失的数字了,其余情况依此类推。