QAHTTPd Product Sheet

QAHTTPd is a powerful and high-secure embedded HTTP server, developed from scratch in Java.

QAHTTPd Lion Logo QAHTTPd contains an integrated Web Application Firewall so that no third party product are required to protect the Web Server against hacking. QAHTTPd is "self-contained" in the sense that no dependencies exist to any third party Java libraries. QAHTTPd runs on any operating system where Java is available. The entire QAHTTPd is encapsulated in a single JAR-file. QAHTTPd does not need to be "installed" before used. There is no "setup" procedure. QAHTTPd just works.

QAHTTPd Web Server Features

  • Pluggable HTTP/S connection adapter(s)
  • Pluggable log adapter
  • Self-tuning worker thread pool
  • Self-tuning SQL connection pool
  • Support of anonymous and authenticated sessions
  • Support of translating URL paths and replacing CGI parameters
  • Support of HTTP pre-processing filters
  • Support of Servlet-like functions (= Weblets)
  • Support of Streaming (= Streamlets)
  • Support of WebSockets (= WebSocketProcesslets)
  • Support of server-side JavaScript pre-preprocessors, callable from any HTML web page, before delivered to the HTTP client
  • Support of server-side Include Files pre-preprocessors, callable from any HTML web page, before delivered to the HTTP client
  • Automatically applied Response Content Compression
  • Implemented as Java module
  • Integrated dynamic Java class loader
  • Fast, secure and stable

QAHTTPd Security Features

QAHTTPd is intrinsically safe and can be operated directly at the internet without the need for additional security solutions.

  • Dynamic IP block list, enabled by default
  • Pluggable IP block list Alarm Adapter
  • Protection against DOS attacks
  • Protection against too many HTTP requests
  • Protection against too many invalid URL calls
  • Protection against too many form submits
  • Protection against too large HTTP requests
  • Protection against Zip bombs in compressed HTTP request content
  • Protection against guessing authentication credentials
  • Protection against guessing the session ID
  • Protection against of changing the User Agent within a session
  • Protection against of changing the IP Address too often within a session
  • Protection against receiving too many WebSocket frames
  • Protection against receiving unwanted WebSocket frames
  • Protection against receiving too large WebSocket frames
QAHTTPd is not freeware: Using QAHTTPd in your own projects requires a commercial license. License price and JavaDoc are available on request.
Simple Programming Example
import com.dkfqa.qahttpd.QAHTTPd;
import com.dkfqa.qahttpd.QAHTTPdProperties;

/**
 * Start a QAHTTPd server.
 */
public class MinimalStartup
{
    public static void main(String[] args) {
        try {

            // set initial values of the HTTP server thread
            // --------------------------------------------
            QAHTTPdProperties qahttpdProperties = new QAHTTPdProperties();

            // set the HTTP connection adapter
            qahttpdProperties.addIpPortAdapter("com.dkfqa.qahttpd.HTTPdConnectionAdapter", 8000, 8000);

            // set the document disk root directory (this configuration is optional, normally not used for REST API servers)
            qahttpdProperties.setDiskDocumentRootDirectory("/opt/htdocs");

            // start the server
            // ----------------
            QAHTTPd qahttpd = new QAHTTPd(qahttpdProperties);
            qahttpd.start();

            // wait forever - until the QAHTTPd server main thread is terminated by an OS signal
            qahttpd.join();
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

© by David K. Fischer DKFQA.com Version 2.0.3 released at 25 Dec 2019