Menu

Tree [r5] /
 History

HTTPS access


File Date Author Commit
 conf 2009-09-12 kamathln [r2] Too many to list here committing after a long t...
 TODO 2009-09-12 kamathln [r2] Too many to list here committing after a long t...
 copyright 2009-09-12 kamathln [r2] Too many to list here committing after a long t...
 handle_directory 2009-09-16 kamathln [r3] Directory handler's thumbnail img tag was not ...
 handle_naughty 2009-09-12 kamathln [r2] Too many to list here committing after a long t...
 handle_no_perm 2009-09-12 kamathln [r2] Too many to list here committing after a long t...
 handle_no_resource 2009-09-12 kamathln [r2] Too many to list here committing after a long t...
 http 2010-01-15 kamathln [r5] implemented HEAD .. Finally!
 readme 2009-09-12 kamathln [r2] Too many to list here committing after a long t...
 starting-bashhttpd 2009-09-12 kamathln [r2] Too many to list here committing after a long t...

Read Me

What it is (and it's goal) :
----------------------------
	It is an HTTP parser and handler written entirely in bash and other tools that follow *nix toolbox philosophy. That is exactly its goal - to demonstrate the power of *nix toolbox philosophy by implementing as many features of a http server as possible. 


What it does:
-------------
        It is an HTTP pasrer and handler that serves files and other configured resources from a configured directory (as of now) from it's local system. It does so by taking incoming http traffic from it's standard input and sends the response through the standard output. 

Well, then how can I use it?
	It is meant to be used along with a tcp connection handler. Like tcpsvd from ipsvd project ( http://smarden.org/ipsvd/ ) or or tcpserver from ucspi-tools project ( cr.yp.to/ucspi-tcp.html ) . I use it like this:
	root@laxtop /usr/src/bashhttpd#/usr/local/bin/tcpserver -l kamathln.homelinux.net -H -R -u 1001 -g 1001 0 80 sh http 

	Of course, you can also use it directly like this 
	root@laxtop /usr/src/bashhttpd# sh http
	GET / HTTP/1.0

	HTTP/1.1 200 OK
	....

	But then you have to find the use yourself :-p


Can I use it ?
-------------
	Of course, Under GNU GPL V3 or above. But then.. it is not yet complete. It does not yet support a lot of standardly used HTTP request parameters, leave alone rfc2616 compliancy. So the question is do you really want to use it? I do not give any type of warranty. Not even the warranty of merchantability. The "copyright" file explains the license you must agree to.

How do I configure it ?
	You generally configure it by changing the "http" file. But all of the code is directly editable. In other words, you can change any behaviour of the program by editing the program itself. Am I not the master of the obvious? Ok ..

I want to ask you more questions.
---------------------------------
	kamathln gmail com
	please dont SPAM me

Current Features?
-----------------
 * Well, it searves normal files and CGI. It also serves directory listings( more on this later. 
 * Basic GET and POST implemented no chunked data transfer yet .
 * Pipelined connection.
 * Directory listing gives nice output and has basic themability.
 * Directory listing can show thumbnails from $HOME/.thumbnail
 * Directory listing can provide tar functionality if configured
 * Directory listing can show link targets if configured
 * Directory listing can detect a number of readme like files and display them in the directory listing 
 * Directory listing can take cgi like parameter through GET to modify it's behaviour.