分享一个 C++ HTTP Server 实现

2018-07-03 20:59:43 +08:00
 xiaottt

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

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

地址:tzhttpd

7522 次点击
所在节点    分享创造
10 条回复
k9982874
2018-07-03 21:01:52 +08:00
都依赖 boost 了,为啥不直接 asio ?
xiaottt
2018-07-03 21:04:31 +08:00
@k9982874

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

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

我们要生产系统上用,肯定不会让我们在生产系统上乱搞……
k9982874
2018-07-04 10:09:13 +08:00
@xiaottt #2 都用 asio 了那你实现了啥。。现在连做 C/C++的也变的这么浮夸了吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/467896

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX