1、http server
提到http server,一般用到的都是Apache和nginx这样的成熟软件,但是,有的情况下,我们也许也会用一些非常轻量级的http server。
http server的c++轻量级实现里,Mongoose和tinyhttpd这两个比较有名,而且很有参考价值。
tinyhttpd精简,仅有一个.c,500行代码。但是麻雀虽小五脏俱全,许多人推荐tinyhttpd给新手阅读。
https://sourceforge.net/projects/tinyhttpd/
【源码剖析】tinyhttpd —— C 语言实现最简单的 HTTP 服务器
http://www.acme.com/software/mini_httpd/
Mongoose只有一个.h一个.c,而且能够很好的跨平台。在工作中,有过Mongoose运用在PC软件和android app的实践,效果也还可以。
https://github.com/cesanta/mongoose
https://github.com/liigo/tinyweb/ --- libuv
https://github.com/Akagi201/libuv-webserver --- libuv
https://github.com/haywire/haywire --- libuv
https://github.com/h2o/h2o --- libuv
2、http client
libcurl:C/C++版本的http客户端库
https://github.com/curl/curl
https://curl.haxx.se/
https://curl.haxx.se/libcurl/
3、http解析器
https://github.com/nodejs/http-parser
4、RESTful
C++ REST SDK(也写作 cpprestsdk),一个支持 HTTP 协议 、主要用于 RESTful 接口开发的 C++ 库。C++ REST SDK 是 Microsoft 的一个开源跨平台项目, 其使用大量现代异步 C++ API 实现了一个基于 HTTP / HTTPS 协议的 B/S 组件,使用该组件,可以方便地进行高性能RESTful、HTTP / HTTPS 服务器、客户端开发,且可以在Windows、Linux、OSX、iOS、Android各平台下使用。
https://github.com/microsoft/cpprestsdk
Corvusoft的Restbed框架为c++ 11应用程序带来了异步RESTful功能。
https://github.com/Corvusoft/restbed
---
https://github.com/chriskohlhoff/asio