简单的HTTP服务器库

Simple HTTP Server lib

本文关键字:服务器 HTTP 简单      更新时间:2023-10-16

对于一个简单的http服务器库,什么是好的选择?它不需要高性能。我更愿意为一些REST/JSON通信("API")寻找一些简单的东西。

它必须能够在多线程环境中工作,并且必须能够处理大型POST请求。

有什么建议吗?我已经尝试过cpp-netlib,但对于如此简单的任务来说,这似乎太复杂了。。。

编辑:我正在寻找一些非常轻便和简单的东西。比如Ruby世界里的Sinatra。对我来说,Poco是一个过于沉重的图书馆的又一个例子。

首先想到的是Poco Library(http://pocoproject.org/)

跨平台、稳定、有据可查。虽然库本身提供的内容可能超出了您的需要,但您可以构建并省略您不打算使用的部分,以减少膨胀。

他们有一个功能齐全的Net库,其中包括几个重要的类和实用程序。

以下是该库中幻灯片的pdf格式,特别感兴趣的是HTTPServer类:http://pocoproject.org/slides/200-Network.pdf

不确定是否有大的POST数据,但我以前使用过猫鼬:https://github.com/cesanta/mongoose/.

如果LGPL许可证是不需要的,那么项目是MIT时的MIT分支也会添加C++APIhttps://github.com/bel2125/civetweb

我鼓励您从boost.asio中的http服务器示例开始。它们非常简单易懂,您应该能够根据需要轻松扩展它们。

然而,如果你想跳到比示例代码更精致的东西上,我知道C++中有3个http服务器,你可能喜欢尝试:

  • "x0-HTTP Web服务器框架"对我个人来说,这似乎是最有前途的,因为它重量轻且简单
  • "highpower/xiva"是一个简单的http服务器框架,用于向浏览器发送通知
  • "Pion,原子实验室的一个项目"是处理大量数据的精细框架的一部分

答案很晚;但希望这能有所帮助
为了您对能够处理REST的服务器感兴趣,这里是最容易使用的HTTP服务器库(在我看来):https://github.com/yhirose/cpp-httplib.
对于JSON解析,您可以搜索另一个库来将其结合使用。

就我个人而言,我会选择Arachnida,但那可能是因为我写的。