GNU libmicrohttpd is a small C library for embedding HTTP server functionality into other applications. It is reentrant, fast, supports HTTP 1.1, and permits listening on multiple ports. The API is simple and still powerful enough to allow programmers to use the entire HTTP feature set. SSL/TLS support is available as an option.
| Tags | Internet Web HTTP Servers Software Development Libraries |
|---|---|
| Licenses | LGPL |
| Operating Systems | Windows Windows Windows z/OS vxWorks FreeBSD Mac OS X Symbian eCos GNU/Linux Android |
| Implementation | C |
Recent releases


Release Notes: This release offers performance improvements for POST processing, a new API call to reduce the number of select calls (if in "external" select mode), a new function to allow applications to stop MHD from processing new incoming connections while finishing ongoing requests, and various improvments to the documentation, including a larger demonstration server.


Release Notes: This is a bugfix release. It fixes an initialization problem on some platforms and a bug in the postprocessor's URL parser. SSL connections are no longer dropped if the system uptime is less than the connection timeout.


Release Notes: This release allows creating responses with zero bytes using MHD_create_response_from_callback. A few "const" statements have been added to allow keeping more static strings in ROM. The code has been modified to work with PlibC 0.1.7 on Windows. The post processor now tolerates uploads which don't contain "\r\n" and also returns keys which don't have a matching value.


Release Notes: This release fixes the loss of a parameter in processing POST data from IE8 and Chrome. It automatically sets a "Connection: close" header if the client requests the connection to be closed. Finally, given both 'chunked' encoding and 'content-length', MHD now ignores the 'content-length' header as per the RFC.


Release Notes: This release adds support for building libmicrohttpd for Android, fixes some build issues on W32, and fixes an issue with data in TLS buffers sometimes not being completely drained if there was no activity on the socket.