当前位置: 首页 > 软件库 > 服务器软件 > HTTP服务器 >

ehttp

基于 epoll 的轻量级 http server
授权协议 Apache
开发语言 C/C++
所属分类 服务器软件、 HTTP服务器
软件类型 开源软件
地区 国产
投 递 者 唐珂
操作系统 Linux
开源组织
适用人群 未知
 软件概览

ehttp 组件是为了使用c++方便快速的构建http server,编写基于http协议json格式的接口,和nginx等传统服务器相比,更加重视开发的便捷性,项目参考restbed 实现。

特点

  • linux 2.6 +

  • 多线程 + epoll

  • 强调简洁实用

依赖

性能

  • qps 12000+ (短连接 ab -c 10 -n 10000 localhost:3490/hello)

  • qps 16000+ (长连接 ab -c 10 -n 10000 -k localhost:3490/hello)

构建 && 测试

 make && make test && ./output/bin/http_server_test 3490
 curl "localhost:3490/hello"

功能列表

  • http 1.0/1.1(keep-alive 支持) GET/POST请求

  • 便捷的开发形式

  • Json格式的数据返回

例子

#include 
#include 
#include "simple_log.h"
#include "http_server.h"

void login(Request &request, Json::Value &root) {
    std::string name = request.get_param("name");
    std::string pwd = request.get_param("pwd");

    LOG_DEBUG("login user which name:%s, pwd:%s", name.c_str(), pwd.c_str());

    root["code"] = 0;
    root["msg"] = "login success!";
}

int main() {
    HttpServer http_server;

    http_server.add_mapping("/login", login, POST_METHOD);

    http_server.set_port(3456);
    http_server.start_sync();
    return 0;
}

运行

liao@ubuntu:~/workspace/simple_server$ curl "localhost:3490/login" -d "name=tom&pwd=3"
{"code":0,"msg":"login success!"}
  • import org.apache.http.Header; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache

 相关资料
  • 本文向大家介绍基于zepto的移动端轻量级日期插件--date_picker,包括了基于zepto的移动端轻量级日期插件--date_picker的使用技巧和注意事项,需要的朋友参考一下 前言 做过移动Web开发的同学都知道,移动端日期选择是很常见的需求。在PC端,我们有很丰富的选择,比较出名的就有Mobiscroll和jQuery UI Datepicker。个人看来,这些插件存在的两个显而易见

  • 本文向大家介绍详解基于 Node.js 的轻量级云函数功能实现,包括了详解基于 Node.js 的轻量级云函数功能实现的使用技巧和注意事项,需要的朋友参考一下 导语 在万物皆可云的时代,你的应用甚至不需要服务器。云函数功能在各大云服务中均有提供,那么,如何用“无所不能”的 node.js 实现呢? 一、什么是云函数? 云函数是诞生于云服务的一个新名词,顾名思义,云函数就是在云端(即服务端)执行的函

  • 本文向大家介绍基于C#实现的轻量级多线程队列图文详解,包括了基于C#实现的轻量级多线程队列图文详解的使用技巧和注意事项,需要的朋友参考一下 前言 工作中我们经常会遇到一些一些功能需要实现造作日志,数据修改日志,对于这种业务需求如果我们以同步的方式实现,难免会影响到系统的性能。如下我列出集中解决方案。 使用Thread异步处理。 使用线程池或Task异步处理。 以上两种方案确实能解决我们此场景的需求

  • 本文向大家介绍基于Python的SQL Server数据库实现对象同步轻量级,包括了基于Python的SQL Server数据库实现对象同步轻量级的使用技巧和注意事项,需要的朋友参考一下 缘由 日常工作中经常遇到类似的问题:把某个服务器上的某些指定的表同步到另外一台服务器。 类似需求用SSIS或者其他ETL工作很容易实现,比如用SSIS的话,就会会存在相当一部分反复的手工操作。 建源的数据库信息,

  • 本文向大家介绍基于VuePress 轻量级静态网站生成器的实现方法,包括了基于VuePress 轻量级静态网站生成器的实现方法的使用技巧和注意事项,需要的朋友参考一下 什么是VuePress VuePress由两部分组成:一个基于Vue的轻量级静态网站生成器,以及为编写技术文档而优化的默认主题。 它是为了满足Vue自己的子项目文档的需求而创建的。 VuePress为每一个由它生成的页面提供预加载的

  • 问题内容: JPanel和JFrame有什么区别,以及与轻量级,重量级的关系? 问题答案: JPanel是允许将多个UI组件放在一起的容器。JFrame是使用Swing编写的窗口。 所有的Swing组件都是所谓的“轻型”组件,因为它们是用Java编写的。例如,如果您运行Swing应用程序并尝试使用UI分析工具(例如Windows中的WinSpy)对其进行分析,则只会看到一个元素:窗口(JFrame