V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xiaottt
V2EX  ›  分享创造

分享一个 C++ HTTP Server 实现

  •  
  •   xiaottt · 2018-07-03 20:59:43 +08:00 · 7491 次点击
    这是一个创建于 2341 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主要是一些服务部署在老旧机器上,CGI 服务形式发布服务太耗费资源了,请求量一大机器基本都要跪掉了。
    之前也找过很多 HTTP Server,要么感觉不好用,要么就是需要 C++11 支持,但是现在服务器还是清一色的 CentOS 6,所以就干脆自己弄了一个。依赖 C++0x 和 boost 库,专为 CentOS 6.x 打造,当然新版本机器应该也不成问题。

    觉得做 C++开发的可以拿这个组件填充业务代码后,快速搭建一个诸如测试功能的服务端;当然还可以和各种现有服务集成,就可以支持一个 HTTP 接口可以更新服务、更新配置等……
    反正我觉得还是挺有用的,所以共享出来了。当然也欢迎大家指教和讨论。

    地址:tzhttpd

    10 条回复    2018-07-04 10:09:13 +08:00
    k9982874
        1
    k9982874  
       2018-07-03 21:01:52 +08:00 via iPhone
    都依赖 boost 了,为啥不直接 asio ?
    xiaottt
        2
    xiaottt  
    OP
       2018-07-03 21:04:31 +08:00
    @k9982874

    是使用了 boost::asio 啊……
    huaouo
        3
    huaouo  
       2018-07-03 23:12:06 +08:00 via Android
    C++0x 不就是 C++11 么 ...
    MrVito
        4
    MrVito  
       2018-07-03 23:18:25 +08:00 via Android
    @huaouo 楼主说的是 gcc4.5 编译时候的参数 c++0x
    rrfeng
        5
    rrfeng  
       2018-07-03 23:20:38 +08:00 via Android
    这个情况 go 考虑一下...
    gulucn
        6
    gulucn  
       2018-07-04 09:18:40 +08:00
    其实如果想用 c++0x 或 c++11,倒不如装个 Devtoolset3 或以上,然后装个 gcc,就可以使用 c++11 语法
    xiaottt
        7
    xiaottt  
    OP
       2018-07-04 09:32:08 +08:00
    @huaouo
    @MrVito

    GCC 4.8.1 was the first feature-complete implementation of the 2011 C++ standard, previously known as C++0x.

    CentOS 6.x 目前 gcc 的版本是 4.4.7,所以新标准的很多特性都不支持。

    Ref: http://gcc.gnu.org/projects/cxx-status.html
    xiaottt
        8
    xiaottt  
    OP
       2018-07-04 09:34:19 +08:00
    @rrfeng

    其实很多语言都有成熟的 HTTP 库的,唯独 C++缺失。
    换语言当然是一种方法,但是换一种语言重新实现业务的代价挺大的,而且新语言新特性也有风险。无疑当前这种方式的代价最低。
    xiaottt
        9
    xiaottt  
    OP
       2018-07-04 09:34:58 +08:00
    @gulucn

    我们要生产系统上用,肯定不会让我们在生产系统上乱搞……
    k9982874
        10
    k9982874  
       2018-07-04 10:09:13 +08:00
    @xiaottt #2 都用 asio 了那你实现了啥。。现在连做 C/C++的也变的这么浮夸了吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1736 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:41 · PVG 00:41 · LAX 08:41 · JFK 11:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.