适合c/c++的http开源方案
版本说明
版本 | 作者 | 日期 | 备注 |
0.1 | loon | 2019.2.13 | 初稿 |
0.2 | loon | 2019.4.1 | 修复部分勘误 |
目录
文章目录
一、初衷
在嵌入式开发过程中,我们有的时候需要移植或开发web服务,http协议是绕不开的,这个时候结合开源方案,可以加快我们的开发进度,减少工作量。
二、相关开源方案
以下排名不分先后顺序。
名称 | 地址 | 说明 |
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 | 这个不仅仅是一个库,是一个软件了,很多嵌入式环境中使用该软件作为web服务 | |
thttpd | 这个也是一个很好的web server | |
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需要你自己结合自身的情况去选择。