mirror of
https://git.gnunet.org/libmicrohttpd.git
synced 2026-09-25 04:09:31 +03:00
85 lines
2.7 KiB
Plaintext
85 lines
2.7 KiB
Plaintext
About
|
|
=====
|
|
|
|
libmicrohttpd is a library written in C that provides a compact
|
|
API and implementation of an HTTP 1.1 web server. libmicrohttpd
|
|
only implements the HTTP 1.1 protocol. The main application must
|
|
still provide the content.
|
|
|
|
|
|
Installation
|
|
============
|
|
|
|
If you are using Subversion, run "autoreconf -fi" to create configure.
|
|
|
|
In order to run the testcases, you need a recent version of libcurl.
|
|
libcurl is not required if you just want to install the library.
|
|
|
|
|
|
Configure options
|
|
=================
|
|
|
|
Especially for development, use "--enable-messages" to enable error
|
|
reporting (and use MHD_USE_DEBUG). Error reporting is not enabled by
|
|
default to reduce the size of the library (error messages take
|
|
space!). If you are concerned about space, you should set "CFLAGS" to
|
|
"-Os --fomit-frame-pointer" to have gcc generate tight code. The
|
|
resulting binary should be about 25k (on x86).
|
|
|
|
|
|
Portability
|
|
===========
|
|
|
|
The latest version of libmicrohttpd will try to avoid SIGPIPE on its
|
|
sockets. This should work on OS X, Linux and recent BSD systems (at
|
|
least). On other systems that may trigger a SIGPIPE on send/recv, the
|
|
main application should install a signal handler to handle SIGPIPE.
|
|
|
|
|
|
Development Status
|
|
==================
|
|
|
|
This is a beta release. Below we list things that should be
|
|
implemented (in order of importance) before we can claim to be
|
|
reasonably complete. #XXXX refers to the respective Mantis bug report
|
|
(or feature request). ARCH indicates that implementing this feature
|
|
may require non-trivial ARCHitectural changes in the code. API
|
|
indicates that implementing the feature will require API changes.
|
|
TRIV indicates that implementing this feature should be TRIVial. TEST
|
|
indicates that a testcase should be written before implementing the
|
|
feature.
|
|
|
|
|
|
For POST:
|
|
=========
|
|
- add support to decode multipart/form-data with
|
|
nesting (used for files) -- #1221, TEST
|
|
- http://en.wikipedia.org/wiki/HTTP_pipelining:
|
|
"Only idempotent requests should be pipelined, such as GET and HEAD requests."
|
|
We should make sure that we force a close after POSTs, PUTs and DELETEs.
|
|
|
|
For SSL:
|
|
========
|
|
microhttpd.h:
|
|
- define appropriate MHD_OPTIONs (#1225, API)
|
|
- actual implementation (#1225, ARCH)
|
|
|
|
Missing Testcases:
|
|
==================
|
|
- add testcases for http/1.1 pipelining (need
|
|
to figure out how to ensure curl pipelines
|
|
-- and it seems libcurl has issues with pipelining,
|
|
see http://curl.haxx.se/mail/lib-2007-12/0248.html)
|
|
- add testcases for resource limit enforcement
|
|
- add testcases for client queuing early response,
|
|
suppressing 100 CONTINUE
|
|
- extend testcase for chunked encoding to validate
|
|
handling of footers
|
|
|
|
Documentation:
|
|
==============
|
|
- manual (texinfo, man)
|
|
- tutorial
|
|
|
|
|