NanoHTTPD is a free, simple, tiny, nicely embeddable HTTP server in Java.
Version: 1.0NanoHTTPD is a free, simple, tiny, nicely embeddable HTTP server in Java.
License: BSD License
Operating System: Linux
Why another Java HTTPD?
I couldn't find a small enough, embeddable and easily modifiable HTTP server that I could just copy and paste into my other Java projects. Every one of them consisted of dozens of .java files and/or jars, usually with - from my point of view - "overkill features" like servlet support, web administration, configuration files, logging etc.
So I made my own. Take it, hopefully you'll find it useful, too.
Here are some key features of "NanoHTTPD":
· Only one Java file
· Java 1.1 compatible
· Released as open source, Modified BSD licence
· No fixed config files, logging, authorization etc. (Implement by yourself if you need them.)
· Supports parameter parsing of GET and POST methods
· Parameter names must be unique. (Adding support to multiple instance of a parameter is not difficult, but would make the interface a bit more cumbersome to use.)
· Supports both dynamic content and file serving
· Never caches anything
· Doesn't limit bandwidth, request time or simultaneous connections
· Default code serves files and shows all HTTP parameters and headers
· File server supports directory listing, index.html and index.htm
· File server does the 301 redirection trick for directories without /
· File server supports simple skipping for files (continue download)
· File server uses current directory as a web root
· File server serves also very long files without memory overhead
· Contains a built-in list of most common mime types
· All header names are converted lowercase so they don't vary between browsers/clients
Ways to use
· Run as a standalone app (serves files from current directory and shows requests)
· Subclass serve() and embed to your own program
· Call serveFile() from serve() with your own base directory