(https://cloud.google.com/appengine/). It works with Apache Maven
(http://maven.apache.org) to provide a way to run a web application locally
while in development.
Jetty isn’t really a standalone web server in the traditional sense. Rather, it
creates a way to use Java code for web applications. Jetty is complex enough
to warrant a book of its own. If you are developing web applications using
Java and want a highly configurable network of connectors and handlers at
your disposal (and you know what that phrase means), Jetty is a pretty good
choice. Jetty components are simple, plain old Java objects (POJOs). Jetty has
an API that makes using it in Java easy. As the website says, Jetty “provides
an HTTP server and Servlet container capable of serving static and dynamic
content either from a standalone or embedded instantiations.” If you need it, it
is great. If you don’t, it will be overkill.
thttpd
thttpd is a very light, decidedly not flashy or feature-filled web server. It has
not been abandoned, but it does not seem to be updated frequently. It is
included here for one main reason: It has an interesting feature that makes it
unique. First, we provide a general description of the web server.
thttpd is small and simple. It claims to have only slightly more than is
necessary to support HTTP 1.1. No bells. No whistles. The positive side is
that simple code generally has fewer stability issues, has fewer security and
performance problems, and uses less memory. Your virtual hosts can be easily
configured in thttpd using a familiar format. Getting CGI-type content to run
is more complicated than with any of the other servers in this chapter as it is
not supported out of the box.
Here is the really interesting part: thttpd has a throttling feature that lets you
set maximum byte rates on URLs or URL groups. You can limit the speed or
use of your site’s bandwidth according to the URL being requested by the
client. You could take advantage of this feature, for example, by hosting
media files and allowing them to be accessed while ensuring that you have
plenty of bandwidth available for other users to access your static HTML
pages.
thttpd is not updated frequently, so it might not be suitable for use on a
production server, although there is some evidence that it was once used on a
few well-known websites. It seems that the world has moved on. However,
the throttle-by-requested-URL is an interesting idea and makes it worthy of a
mention here.