适合c/c++的http开源方案


版本说明

版本

作者

日期

备注

0.1

loon

2019.2.13

初稿

0.2

loon

2019.4.1

修复部分勘误

目录

文章目录

一、初衷

在嵌入式开发过程中,我们有的时候需要移植或开发web服务,http协议是绕不开的,这个时候结合开源方案,可以加快我们的开发进度,减少工作量。

二、相关开源方案

以下排名不分先后顺序。

名称

地址

说明

libcurl

官网:​​https://curl.haxx.se/libcurl/​

这个是curl的一部分,但是只可以开发http客户端,无法开发服务端

libevent

官网:​​http://libevent.org​​​ GitHub:​​https://github.com/libevent/libevent​

该库很出名了,最http已经做了部分封装,可以开发客户端和服务端

TinyHTTPd

官网:​​http://tinyhttpd.sourceforge.net​​​ GitHub:​​https://github.com/EZLippi/Tinyhttpd​

该库整体代码只有500+行,只象征性的支持http1.0,主要是用来学习http协议

lighttpd

官网:​​http://www.lighttpd.net​

这个不仅仅是一个库,是一个软件了,很多嵌入式环境中使用该软件作为web服务

thttpd

官网:​​http://www.acme.com/software/thttpd/​

这个也是一个很好的web server

shttpd

​https://sourceforge.net/projects/shttpd/​

这个是mongoose的前身,目前已经不维护了

mongoose

官网:​​https://code.google.com/archive/p/mongoose/​​​ GitHub:​​https://github.com/cesanta/mongoose​

非常适合嵌入式环境,一个.c一个.h,不仅仅适合作为一个web server,还可很方便嵌入到项目中做二次开发,同时还支持MQTT、websockets等,缺点是其性能上有些欠缺

三、最后

此外,还有很多的web server比如Apache、nginx、uhttpd或者库比如libwebsockets、Boost.asio等等这些都和http协议相关,这里我们可能只找到了一部分,具体需要什么样的库或者web server需要你自己结合自身的情况去选择。