JLHTTP - Java Lightweight HTTP Server (Web Server)


Latest release:

JLHTTP 3.1 (107K - includes source code) - What's new?

Previous releases:

JLHTTP 3.0 (107K - includes source code)

JLHTTP 2.6 (98K - includes source code)

JLHTTP 2.5 (98K - includes source code)

JLHTTP 2.4 (97K - includes source code)

JLHTTP 2.3 (96K - includes source code)

JLHTTP 2.2 (96K - includes source code)

JLHTTP 2.1 (96K - includes source code)

JLHTTP 2.0 (93K - includes source code)

JLHTTP 1.3 (89K - includes source code)

JLHTTP 1.2 (71K - includes source code)

JLHTTP 1.1 (69K - includes source code)

JLHTTP 1.0 (62K - includes source code)

What is the Java Lightweight HTTP Server?

The Java Lightweight HTTP Server is an open-source implementation of an HTTP Server (a.k.a. web server). It is lightweight, i.e. small and efficient, yet provides various useful features commonly found in heavier HTTP servers. It can be used both as a standalone web server, and as an easily embedded server for integration into existing applications. This is commonly used to provide a convenient GUI (Graphical User Interface) which can be viewed across the network in a cross-platform manner from any computer with a web browser (just about all of them).

This server is conformant to RFC 9110 ("HTTP Semantics") and RFC 9112 ("HTTP/1.1") in the role of an "origin server", and also implements some of the optional functionality and additional features.

Feature highlights are:

What can the Java Lightweight HTTP Server be used for?

Being a lightweight, standalone, easily embeddable and tiny-footprint server, it is well-suited for:

How do I use the Java Lightweight HTTP Server?

This server is intentionally written as a single source file, in order to make it as easy as possible to integrate into any existing project - by simply adding this single file to the project sources. It can also be used like any other library, by including the jar file in the application classpath.

It is also available on Maven Central at the artifact coordinates net.freeutils:jlhttp:3.0.

See the javadocs in the source file for the full API details. Examining the source code of the main method can be a good starting point for understanding how to embed the server in your application, as well.

The server can also be run as a standalone application from the command line using the command 'java -jar jlhttp-3.0.jar' to serve files under a specified directory with no need for additional configuration.


Make sure to read the FAQ, which includes additional information and sample code.

What's New?

In version 3.1:

In version 3.0:

In version 2.6:

In version 2.5:

In version 2.4:

In version 2.3:

In version 2.2:

In version 2.1:

In version 2.0:

In version 1.3:

In version 1.2:

In version 1.1:

In version 1.0:


The JLHTTP Package is provided under the GNU General Public License agreement.
For non-GPL commercial licensing please contact the author. If you like it, why not give something back?



You can contact the author via e-mail at:

Please write in with any bugs, suggestions, fixes, contributions, or just to drop a good word and let me know you've found the JLHTTP Package useful and you'd like it to keep being maintained.

For updates and additional information, you can always visit the website at: