< 五款小巧的Web Server[C语言] > 介绍Tokyo Cabinet、Tokyo Tyrant和Tokyo Dystopia

1、micro_httpd - really small HTTP server
特点:
    支持安全的 .. 上级目录过滤
    支持通用的MIME类型
    支持简单的目录
    支持目录列表
    支持使用 index.html 作为首页
    Trailing-slash redirection
    程序总共代码才200多行
这个httpd适合学习简单的Web Server编写学习,因为它只有一个简单的框架,只能够处理简单的静态页,可以考虑用来放静态页。
官方地址:http://www.acme.com/software/micro_httpd/
下载地址:http://www.acme.com/software/micro_httpd/micro_httpd_12dec2005.tar.gz

2、mini_httpd - small HTTP server
特点:
    支持GET、HEAD、POST方法
    支持CGI功能
    支持基本的验证功能
    支持安全 .. 上级目录功能
    支持通用的MIME类型
    支持目录列表功能
    支持使用 index.html, index.htm, index.cgi 作为首页
    支持多个根目录的虚拟主机
    支持标准日志记录
    支持自定义错误页
    Trailing-slash redirection
mini_httpd 也是相对比较适合学习使用,大体实现了一个Web Server的功能,支持静态页和CGI,能够用来放置一些个人简单的东西,不适宜投入生产使用。
官方地址:http://www.acme.com/software/thttpd/
下载地址:http://www.acme.com/software/mini_httpd/mini_httpd-1.19.tar.gz

3、thttpd - tiny/turbo/throttling HTTP server
thttpd中是一个简单,小型,轻便,快速和安全的http服务器:
简单:它能够支持HTTP/1.1协议标准,或者超过了最低水平
小巧:它具有非常少的运行时间,因为它不fork子进程来接受新请求,并且非常谨慎的分配内存(性能对比表:http://www.acme.com/software/thttpd/benchmarks.html)
便携:它能够在大部分的类Unix系统上运行,包括FreeBSD, SunOS 4, Solaris 2, BSD/OS, Linux, OSF等等
快速:它的速度要超过主流的Web服务器(Apache, NCSA, Netscape),在高负载情况下,它要快的多
安全:它努力的保护主机不受到攻击,不中断服务器

thttpd 类似于lighttpd,对于并发请求不使用fork()来派生子进程处理,而是采用多路复用(Multiplex)技术来实现。因此效能很好。同时它还有一个特点就是基于URL的文件流量限制,这对于下载的流量控制而言是非常方便的。象Apache就必须使用插件实现,效率较thttpd低。
thttpd跟lighttpd类似,适合静态资源类的服务,比如图片、资源文件、静态HTML等等的应用,性能应该比较好,同时也适合简单的CGI应用的场合。
官方地址:http://www.acme.com/software/thttpd/
下载地址:http://www.acme.com/software/thttpd/thttpd-2.25b.tar.gz

4、lighttpd - light footprint + httpd = LightTPD
Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。
lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能,而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了,这点对于apache的用户是非常重要的,因为迁移到lighttpd就必须面对这些问题。
实用起来lighttpd确实非常不错,apache主要的问题是密集并发下,不断的fork()和切换,以及较高(相对于 lighttpd而言)的内存占用,使系统的资源几尽枯竭。而lighttpd采用了Multiplex技术,代码经过优化,体积非常小,资源占用很低,而且反应速度相当快。
利用apache的rewrite技术,将繁重的cgi/fastcgi任务交给lighttpd来完成,充分利用两者的优点,现在那台服务器的负载下降了一个数量级,而且反应速度也提高了一个甚至是2个数量级!
lighttpd 适合静态资源类的服务,比如图片、资源文件、静态HTML等等的应用,性能应该比较好,同时也适合简单的CGI应用的场合。

官方地址:http://www.lighttpd.net/
下载地址:http://www.lighttpd.net/download/lighttpd-1.4.16.tar.gz

5、SHTTPD - Simple HTTPD
Shttpd是另一个轻量级的web server,具有比thttpd更丰富的功能特性,支持CGI, SSL, cookie, MD5认证, 还能嵌入(embedded)到现有的软件里。最有意思的是不需要配置文件!由于shttpd可以嵌入其他软件,因此可以非常容易的开发嵌入式系统的web server,官方网站上称shttpd如果使用uclibc/dielibc(libc的简化子集)则开销将非常非常低。

特点:
    小巧、快速、不膨胀、无需安装、简单的40KB的exe文件,随意运行
    支持GET, POST, HEAD, PUT, DELETE 等方法
    支持CGI, SSL, SSI, MD5验证, resumed download, aliases, inetd模式运行
    标准日志格式
    非常简单整洁的嵌入式API
    dietlibc friendly. NOT that friendly to the uClibc (*)
    容易定制运行在任意平台:Windows, QNX, RTEMS, UNIX (*BSD, Solaris, Linux)
由于shttpd可以轻松嵌入其他程序里,因此shttpd是较为理想的web server开发原形,开发人员可以基于shttpd开发出自己的webserver!
官方网站:http://shttpd.sourceforge.net/
下载地址:http://jaist.dl.sourceforge.net/sourceforge/shttpd/shttpd-1.38.tar.gz

转载一篇开源http服务器(C语言)相关推荐

  1. 开源游戏服务器框架NoahGameFrame(NF)服务器端环境搭建(二)

    一.下载NoahGameFrame 1.进入到开源游戏服务器框架NoahGameFrame在GitHub的官方界面NoahGameFrame 2.复制要Checkout的资源目录URL 3.在任意一个 ...

  2. zabbix 监控 db2_二十多款开源的服务器监控软件,你用过几款? – 阿汤博客

    1.Conky Conky能在多个的平台上运行,像Windows,Linux,Mac OS,大多数BSD都可以.它有简单的文本.总线进度条,图形窗口不同字体和颜色来显示信息,用户界面简单,300多个内 ...

  3. 转载一篇关于ADA的文章

    转载一篇关于ADA的文章 因为看ocarina的源码,所以转载了一篇ADA文章,也是第一篇博客,刚开始还不怎么会用,但是以后慢慢学吧. [转载部分]为什么要写关于这么古老的语言(1980年左右)的文章 ...

  4. [转载]【转载】GIS开源软件大全

    原文地址:[转载]GIS开源软件大全作者:小eks 3map:行星地球项目由3map驱动,这是一个自由软件,由Telstra宽带基金会创建并支持,提供客户端与服务器的能力以在线再现虚拟地球. Amei ...

  5. 转帖 开源游戏服务器调研

    汇总贴 2013年优秀的开源引擎与开源游戏项目 http://mobile.51cto.com/aengine-431122.htm http://www.oschina.net/search?sco ...

  6. Nginx 外的另一选择,轻量级开源 Web 服务器 Tengine 发布新版本

    2019独角兽企业重金招聘Python工程师标准>>> 新版发布 近日,轻量级开源 Web 服务器 Tengine 发布了2.3.0版本,新增如下特性: ngx_http_proxy ...

  7. Kamailio v4.4.6 发布,开源 SIP 服务器

    开源 SIP 服务器 Kamailio v4.4.6 发布了. Kamailio SIP Server v4.4.6 stable是一个小的版本,包括自v4.4.5以来的代码和文档修复. 配置文件和数 ...

  8. 常用开源Jabber服务器介绍

    常用开源Jabber服务器介绍 1. Openfire (Wildfire) 3.x 授权:GPL or 商用 操作系统平台:所有(使用Java开发) XMPP Jabber 协议实现情况:98% T ...

  9. iOS开发网络篇—搭建本地服务器

    iOS开发网络篇-搭建本地服务器 一.简单说明 说明:提前下载好相关软件,且安装目录最好安装在全英文路径下.如果路径有中文名,那么可能会出现一些莫名其妙的问题. 提示:提前准备好的软件 apache- ...

最新文章

  1. 最后2周 | 高级转录组分析和R语言数据可视化第十一期 (报名线上课还可免费参加线下课)...
  2. 分享一个OTA测试服务器,可以用来测试esp8266的http update功能
  3. CentOS压缩命令zip
  4. redis分布式缓存(三)
  5. .Net Core with 微服务 - Seq 日志聚合
  6. 一段字符串修改某一个位置的值
  7. 【Level 08】U06 Good Feeling L3 Fun-filled concert
  8. 让“云”无处不在-Citrix Xenserver之六 高可用性: High Availability
  9. kafka偏移量保存到mysql里_用java代码手动控制kafkaconsumer偏移量
  10. error:cv_bridge---opencv和ros连接起来的桥
  11. 在pcDuino上安装OpenJFX
  12. java环境变量完美配置教程
  13. 如何使用JLINK调试和固件下载
  14. c++ 软件下载 Dev cpp下载
  15. (6.0系统手机)安卓神器Xposed框架ROOT安装指南
  16. 计算机用户账户限制,win7系统使用共享功能被提示用户账户限制怎么解决
  17. matlab怎样灰度变换,matlab灰度变换函数
  18. 2022年襄阳中级工程师职称水平能力测试成绩出来了吗?
  19. iOS-建设银行破解分享
  20. 40、卤代烷灭火系统模拟喷气试验

热门文章

  1. mysql怎么升级_MySQL UPDATE 更新
  2. python动态生成数据库表_使用Python创建MySQL数据库实现字段动态添加以及动态的插入数据...
  3. mysql-win安装教程,WINDOWS下安装MYSQL教程详解
  4. 解决springboot不扫描@repository的问题
  5. tesseract识别图片中文字(一)
  6. 13.文件:因为懂你,所以永恒
  7. Spring IOC 容器源码分析 - 填充属性到 bean 原始对象
  8. 我所理解的Java NIO
  9. ER图,数据建模与数据字典
  10. 性能测试vs负载测试vs压力测试