appweb显然是不二之选,看了下最新版,已经到了4了

下载下来,http://appwebserver.org/software/appweb-4.4.4-0-src.tgz,十几M,直接吓傻,离我的目标有点远,

翻箱倒柜,到了一个老版本2的,体积还算还好,而且功能强大

瞄了下代码,虽然是为嵌入式系统准备但是功能还真是强大,甚至于支持一个类asp的动态网页语言,叫做esp。

这一个web服务器应该有的结构,虽然小巧,但我想,apache也应该是这样的结构

拿着这个web服务器显示不是为了做网页用了,所以,如果让自己想要的功能跑进服务器才是关键。

每种服务需要一个MaModule/MaHandlerService/MaHandler

在服务器启动的时候将手工调用new MaModule(继承自),会将该模块载入到服务器中,并且,当请求(类MaRequest)来的时候传入时MaHanlder实例的matchRequest进行匹配

当匹配这个请求成功后,会调用MaHanlder的Close方法生成一个新实例给他,并执行run(MaRequest*),一次请求完成

其中,多个模块的Hanlder有可能都同时匹配,那么怎么来控制Hanlder的匹配优先级呢。答案就在new MaModule

代码里面,为我们提供了很多的Hanlder组合拼装一下应该是够了

下载地址:https://github.com/linbc/appweb2-win

使用cmake编译,目前仅用于windows下,linux有太多的选择,反而不需要这个了,所以也不用考虑跨平台了,不过要改还是挺快的,改下CMake的宏就结了

开源而又强大的迷你型web服务器推荐的更多相关文章

  1. 【nodejs之我的开源module】 使用express搭建web服务器,代码即文档的实现。

    前言 都说nodejs适合制作restful_API,因为它有异步处理能力,能吞吐更多的请求,这一点是大家都认可的.前不久我使用nodejs+express+postgresql搭建了一个restfu ...

  2. Web服务器对比介绍

    1.Apache Apache是非常强大的老牌Web服务器,具有模块化结构,拥有众多非常成熟稳定的模块,目前仍是使用非常广泛的服务器,但它是基于多进程HTTPServer,需要对每个用户请求创建一个子 ...

  3. Web服务器缓存

    前面提到的一些缓存技术都是有我们的动态才程序控制的,现在的web服务器功能越来越强大,常用的web服务器软件也都内置了缓存功能,下面我们就简单的说下服务器端缓存的应用. 首先,我们先来介绍一下URL映 ...

  4. 利用Nginx实现反向代理web服务器

    一.Nginx简介 Nginx是一个很强大的高性能Web服务器和反向代理服务器,它具有很多非常优越的特性: 可以高并发连接 内存消耗少 成本低廉 配置文件非常简单 支持Rewrite重写 内置的健康检 ...

  5. 淘宝开源Web服务器Tengine安装教程

    简介Tengine是由淘宝核心系统部基于Nginx开发的Web服务器,它在Nginx的基础上,针对大访问量网站的需求,添加了很多功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,淘宝商 ...

  6. nginx简介(轻量级开源高并发web服务器:大陆使用者百度、京东、新浪、网易、腾讯、淘宝等)(并发量5w)(一般网站apache够用了,而且稳定)

    nginx简介(轻量级开源高并发web服务器:大陆使用者百度.京东.新浪.网易.腾讯.淘宝等)(并发量5w)(一般网站apache够用了,而且稳定) 一.总结 1.在连接高并发的情况下,Nginx是A ...

  7. 3.6 万颗星!开源 Web 服务器后起之秀,自带免费 HTTPS 开箱即用

    众所周知,Web 服务器是 Web 开发中不可或缺的基础服务,在开发中经常会用到.耳熟能详的开源 Web 服务器有久负盛名的 Apache.性能强劲的 Nginx.而我们今天要介绍的开源项目是采用 G ...

  8. 一个比 Nginx 功能更强大的 Web 服务器

    公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ Caddy 简介 Caddy 是一个 Go 编写的 Web 服务器,类似于 Nginx,Caddy 提供了更加强大的功能,随 ...

  9. 淘宝开源Web服务器Tengine基本安装步骤

    Tengine 是由淘宝核心系统部基于Nginx开发的Web服务器,它在Nginx的基础上,针对大访问量 网站的需求,添加了很多功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,淘宝商 ...

随机推荐

  1. CKEditor与CKFinder整合并实现文件上传功能

    事先说明:此整合的是java版本的, 用到的有:jsp + ckeditor + ckfinder (没有servlet 及其它框架技术) 一.需要的资源: 用到的网站,文件自己下载: a) cked ...

  2. radio select的 option使用

    1  radio的使用 <td id="sex">性别:              <input type="radio" name=&quo ...

  3. APK的目录结构

    APK 包含以下内容: 被编译的代码文件(.dex文件) 文件资源(resources) assets. 证书(certificates) 清单文件(maifestfile) assets 文件 li ...

  4. javax.naming.NameNotFoundException

    2015-08-27 09:53:16,463 [localhost-startStop-1] DEBUG [org.springframework.jndi.JndiTemplate] - Look ...

  5. jQuery提交Json数据到Webservice,并接收返回的Json数据

    jQuery ajax webservice:get 和 post 一.GET 方式 客户端 复制代码 代码如下: var data = { classCode: "0001"}; ...

  6. 【转】The Zen of Python

    http://www.python.org/dev/peps/pep-0020/ Beautiful is better than ugly. Explicit is better than impl ...

  7. 使用C# 生成word记录

    private void button1_Click(object sender, System.EventArgs e) { object oMissing = System.Reflection. ...

  8. Missing access checks in put_user/get_user kernel API (CVE-2013-6282)

    /* 本文章由 莫灰灰 编写,转载请注明出处. 作者:莫灰灰    邮箱: minzhenfei@163.com */ 1.漏洞成因 Linux kernel对ARM上的get_user/put_us ...

  9. Android 事件监听处理

    事件监听的处理模型包括三个成员:事件源.事件以及事件监听器. 基于监听的事件处理模型一般包括几个步骤: 1.获取普通界面组件: 2.实现事件监听器类 3.将监听器对象注冊给普通组件 当事件源上发生指定 ...

  10. swift开发:试玩 Apple 站点的 playground

    https://developer.apple.com/library/prerelease/ios/documentation/swift/conceptual/swift_programming_ ...