This manual is for libhttpserver, C++ library for creating an embedded Rest HTTP server (and more).
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.
- Introduction.
- Compilation.
- Constants.
- Structures and classes type definition.
- Callback functions definition.
- Create and work with server.
- Registering resources.
- Building responses to requests.
- Whitelists and Blacklists.
- Simple comet semantics.
- Utilizing Authentication.
- Obtaining and modifying status information.
- GNU-LGPL: The GNU Lesser General Public License says how you can copy and share almost all of libhttpserver.
- GNU-FDL: The GNU Free Documentation License says how you can copy and share the documentation of libhttpserver.
libhttpserver is meant to constitute an easy system to build HTTP servers with REST fashion. libhttpserver is based on libmicrohttpd and, like this, it is a daemon library. The mission of this library is to support all possible HTTP features directly and with a simple semantic allowing then the user to concentrate only on his application and not on HTTP request handling details.
The library is supposed to work transparently for the client Implementing the business logic and using the library itself to realize an interface. If the user wants it must be able to change every behavior of the library itself through the registration of callbacks.
Like the api is based on (libmicrohttpd), libhttpserver is able to decode certain body format a and automatically format them in object oriented fashion. This is true for query arguments and for POST and PUT requests bodies if application/x-www-form-urlencoded or multipart/form-data header are passed.
The header reproduce all the constants defined by libhttpserver. These maps various constant used by the HTTP protocol that are exported as a convenience for users of the library. Is is possible for the user to define their own extensions of the HTTP standard and use those with libhttpserver.
All functions are guaranteed to be completely reentrant and thread-safe (unless differently specified). Additionally, clients can specify resource limits on the overall number of connections, number of connections per IP address and memory used per connection to avoid resource exhaustion.
libhttpserver uses the standard system where the usual build process involves running
./bootstrap mkdir build cd build ./configure make make install