June 20 2019 04:48:15
· Home
· CV
· Articles
· Links
· News Categories
· Media Gallery
· Search


Forgotten your password?
Request a new one here.
SoftwareAside from my IRC bot (SlXBot), I've been working on a new version of my HTTPd. Originally, my HTTPd was called "ShAPAChE", which seemed a little corny. It was coded in C++ as a university project (it was barely object oriented because, sadly, my lecturer on the subject was not a great OO programmer - more of a hacker). Anyway, since then I have finished university and had some real-world experience with OO programming in Java... so I decided to re-write it in, yes, Java! It's going very well. I've hit several milestones:

It can run PHP and CGI,
It has its own language, which is a mixture of HTML and Java and is compiled dynamically in memory when a page is requested meaning that pages do not have to be precompiled,
It has speed limiting and connection limits,
POST works fully,
Redirection works,
Directory listings work,
Inbound header sizes can be limited to avoid people posting large data to the server,
It has full logging,
It has configurable mimetypes,
It has a configurable ban list,
Options are configurable via a config file,
It supports keep-alive,
It supports chunked transfer encoding...

I plan to add a few more features to it such as vhosts, .htaccess support and .htpasswd support (and maybe even gzip support if I find myself with nothing to do). After this, I may consider dumping Apache and using SlXHTTPd full-time!

The architecture of SlXHTTPd is pretty interesting. By itself, it can be run as a stand-alone server. However, it can also be "plugged" into any Java project which can communicate "Arguments" to the HTTPd to be rendered or used in the processing of a page. A plan I have for the future is to integrate SlXHTTPd with SlXBot so that statistics may be viewed in a web browser along with channel logs etc...

This leads me onto my next project which will be a way for programs to communicate without needing to be linked (i.e. they will not need to be part of the same program). Instead, data could be communicated between programs using UDP packets. Anyway, more on that later!
760,344 unique visits