QuickHTTPD

What is it?

QuickHTTPD is a piece of middleware. It is Open Source, backed by a DTD-based XML configuration structure and has been developed with efficiency and flexibility in mind. It is a pure Java application with no external dependencies and can be run on any platform that provides a 1.4 JVM (for a C# .NET 2.0 implementation of this technology, see the LPC).

It is an open mechanism that can be easily adapted to service requests from a variety of services, to send appropriate loosely-tied responses from customisable document sources and to perform arbitrary processing based on the requests. In this regard "QuickHTTPD" is a misnomer.

Out of the box, the QuickHTTPD can be used to provide:

  • An embedded web-server with on-the-fly compression or decompression capabilities
  • A dedicated web service
  • A dedicated web application
  • A thin web-server to act as a façade for a complex web application
  • A limited proxy server
  • Sample code for developers interested in building a web server

QuickHTTPD is only a framework, and as a consequence when customized it probably won't be as agile as a dedicated purpose-built component. It may only be of value to your organisation for prototyping.

It is used successfully by Lothian Productions to form the backbone of a caching system.

How does it work?

The provided API defines interfaces for RequestListeners, RequestHandlers and DocumentSources. A RequestListener listens for an incoming request (usually on a given port) and passes on any request it gets to a RequestHandler. The handler interprets the request, converting it into a document request. The document request is then sent to a DocumentSource which returns a document to be streamed back to the requestor.

The simplest implementation works as follows:

ServetSocketRequestListener

 (listens on a port specified in the XML configuration for incoming requests)

HTTPRequestHandler

 (interprets the request data as an HTTP request)

FilesystemDocumentSource

 (serves the requested document from the server's file system, as specified by the XML configuration)

Future goals for QuickHTTPD

It is only partially complete, although it's fully functional for the purposes described above. A number of incomplete refactorings are marked with FIXME comments in the code.

Goals include:

  • Adding JMS listeners and sources
  • Improving the logging format and mechanisms (it's currently in common Apache format)

Where can I get it?

Here:

Last release build 0.9

Last release build 0.9 Javadocs

Post your comment…

(will not be shown or used for marketing)

captcha

Subscribe

rss Subscribe to our blog feed

Our other products

  • iPhone Backup Extractor

    The iPhone Backup Extractor can restore lost or deleted histories, contact lists, images, audio files and other data from iPhone, iPad or iPod Touch backup files.

    The software runs on Windows, Mac or Linux and is used by thousands of users all over the world.

  • BlackBerry Backup Extractor

    The Blackberry Backup Extractor allows users to recover data such as email, contacts, SMS messages, notes or calendar events from Blackberry IPD backup files that have been made using Blackberry Desktop Manager.

    The software runs on Windows, OS X and Linux and does not require Desktop Manager to be installed.

  • DMG Extractor

    The DMG Extractor is an easy-to-use tool for opening DMG files on Windows.

    The software runs on Windows, OS X and Linux and does not require Desktop Manager to be installed.

  • awdit

    awdit is a free application designed to keep your software and drivers up to date. It can automatically and unobtrusively scan to find where you're missing out on the latest software or drivers.

  • awdit for business

    awdit helps small to medium size businesses manage their IT. It simplifies IT asset & infrastructure management, helping managers with information they need to be on top of but often struggle to. It helps users to adopt best practice, reduce cost, derisk and generate real business value from their IT.

  • xrates

    xrates provides historic and current rates for world currencies, as well as currency converters and maps showing the relative rise or fall in the value of world currencies.

  • Keep Calm-o-matic

    Create your own tribute to or parody of the classic World War 2 poster by entering your own text, choosing colours and choosing or uploading a header image.

    Visitors can buy merchandise such as t-shirts or mousemats with their chosen design incorporated or browse the creations of others.

  • BCM Call Logger

    BCM Call Logger is a tool which provides call reporting information by processing Call Detail Recording logs from Nortel / Avaya Business Communications Manager telephone systems. Call details are stored in a standard database format allowing users to run their own advanced queries or use the suite of standard reports included with the application.

  • iPlayerConverter

    The iPlayerConverter provides browsable schedules and Listen Again listings for national and regional BBC radio stations with links to stream programmes in Windows Media Audio format for users of Internet Radios, mobile devices or anyone else unable to use the official BBC iPlayer radio website.