www.antiaction.com / mayhem


Mayhem started out as a small project, the initial goal was to implement a small web server in java and to learn from this process. After a year of steady updates this resulted in a mostly compliant HTTP/1.1 web server using custom plugins to serve static files and display directory listings. Its been running almost from the start hosting this site and doing so with increasing flexibility.

Fairly quickly after getting it to work with custom dynamic plugins the next logical step was to implement the servlet specifications from Sun and take it from there. In my case the servlet2.3 specifications, leaving out jsp at first.
I made a minimal implementation of the POP3/SMTP services for a course at uni. POP3 is all but complete. SMTP is missing relay. IMAP4 implementation is usable.
Other projects of interest are FTP and NNTP servers which build on the same core as the web server.

I have a working package for transmitting and (dis)assembling DNS messages which I might soon be expanding into a small service, atleast for A, MX and a few other record types.


Server 0.50
HTTPd(Servlets/JSP) 0.87
SMTPd 0.60
POP3d 0.80
IMAPdv4 0.75
DNSd 0.10
IRCd 0.75


javadocs - no frames (updated: 04 jan. 2006).



Progress / Servlet2.3 support:

Todo list:

Links (specs):

Hypertext Transfer Protocol -- HTTP/1.1 (rfc2616)
HTTP Authentication: Basic and Digest Access Authentication (rfc2617)
Upgrading to TLS Within HTTP/1.1 (rfc2817)
Persistent Client State HTTP Cookies (Netscape)
HTTP State Management Mechanism - Cookie (rfc2109)
HTTP State Management Mechanism - Cookie2 (rfc2965)
Robots Exclusion (robots.txt)

Free web servers (Java):

Apache Tomcat
The Nexus Web Server
jo! (pure Java and free)
Bajie Http Web Server
Acme java httpd
   Miniature Java Web Server
Jibble Web Server
W3C's Java Server
java httpd thesis

Commercial web servers (Java):

BEA Systems
IBM WebSphere
Trifork Enterprise Application Server
Orion Application Server (Support site)
Caucho Resin
EasyThings Web ServerŪ

Webservers (non Java):

thttpd (old benchmark)
Boa Webserver

Misc (Java):

The JavaTM Virtual Machine Specification (Second Edition)
JavaTM Application Verification Kit (AVK) for the Enterprise 1.4 FCS
Servlet Engines
Use select for high-speed networking
Advanced Classloading in J2EE (TSS)
Rocket JSP Engine
Building an Executable Launcher that Permits Running a Java 1.2 Application as an NT Service
Performance Case Study: Java Web Server
Java Performance and Scalability, Volume 1: Server-Side Programming Techniques
Java Software Site
A Simple, Multithreaded Web Server (Sun)
A Debugging Web Server in Java
(Yahoo java httpd directorty)
Servlet 2.3: New features exposed (JavaWorld)
Filter code with Servlet 2.3 model (JavaWorld)
Learning Servlet Filters (ONJava)
How Servlet Containers Work (ONJava)
Java Mail Server

JavaBeans application servers:


Links (using/implementing ssl/tls):

ONJava.com: Secure Your Sockets with JSSE [May. 03, 2001]
Sample Code for TLSTrustManager.java
SSL Configuration HOW-TO
Protekt Encryption SSL (The Forge Group)


Feedback should be sent to spam@antiaction.com.