常见的嵌入式 Web 服务器
本文介绍在嵌入式领域中常用的一些 Web 服务器(HTTP 服务器),包括 Lighttpd、Shttpd、Mongoose、Thttpd、Boa、Mini_httpd、Appweb、Goahead、Althttpd 等。
Lighttpd
Lighttpd 是一个开源轻量级嵌入式 Web server,是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的 Web server 环境。具有非常低的内存开销,CPU 占用率低,效能好,以及丰富的模块等特点。
Lighttpd 适合静态资源类的服务,比如图片、资源文件、静态 HTML 等等的应用,性能应该比较好,同时也适合简单的 CGI 应用的场合,Lighttpd 可以很方便的通过 fastcgi 支持 php。
Shttpd
Shttpd,开源。它是另一个轻量级的 Web server,具有比 thttpd 更丰富的功能特性,支持 CGI、SSL、cookie、MD5 认证,还能嵌入(embedded)到现有的软件里。最有意思的是不需要配置文件!由于 shttpd 可以轻松嵌入其他程序里,因此 shttpd 是较为理想的 Web server 开发原形,开发人员可以基于 shttpd 开发出自己的 Web server,官方网站上称 shttpd 如果使用 uclibc/dielibc(libc 的简化子集)则开销将非常非常低。
项目网址:https://docs.huihoo.com/shttpd/
Mongoose
Mongoose Web Server 是一款易于使用的 web 服务器,它可以嵌入到其它应用程序中,为其提供 Web 接口。Mongoose 的前身是 shttpd,它完全开源和自由使用。Mongoose web 服务器的执行是自满足的,只需要使用 mongoose.c 和 mongoose.h 两个文件,它不依赖于任何其他服务。跨平台,支持 Windows、OS X 和 Linux,支持 CGI、SSL、SSI、Digest (MD5) 认证,WebSocket 和 WebDAV,支持断点续传和 URL 重写,基于 IP 的 ACL,支持 Windows 服务,支持 GET、POST、HEAD、PUT、DELETE 方法。
项目网址:https://mongoose.ws
Thttpd
Thttpd 是一款比较精巧的开源 Web 服务器。它的初衷是提供一款简单、小巧、易移植、快速和安全的 HTTP 服务器。对于并发请求不使用 fork 来派生子进程处理,而是采用多路复用(Multiplex)技术来实现。
Thttpd 至少和主流的 Web server 一样快,在高负载下更快,因为其资源占用小的缘故。
Thttpd 还有一个较为引人注目的特点:基于 URL 的文件流量限制,这对于下载的流量控制而言是非常方便的。像 Apache 就必须使用插件实现,效率较 thttpd 低。Thttp 是开源的,采用 C 语言编写,得到广泛使用。
项目网址:https://acme.com/software/thttpd/