Version 8 of tothttpd

Updated 2008-03-12 23:18:46 by tkosiak

tothttpd = The One HTTP Daemon (web server) to rule them all.

Project envisioned by tkosiak and probably many others before (that's why there is so many tcl-only web servers)

Currently I'll have

I seek volunteer to continue that work. There are 2 experienced persons (my and my college) who previously investigated this area. There was written an master degree dissertation about AJAX application support by webserver done in my company DAC System by student from The Faculty of Electronics, Telecommunications and Informatics ETI of GdaƄsk Technical University (http://www.eti.pg.gda.pl/ ) .


Below is temporarily withdrawn proposal for Google Summer of Code 2008

Embeddable HTTP/1.1 web server and client library in pure Tcl

   http://wiki.tcl.tk/20887 - tothttpd = TheOneTclHTTPD (''the one to rule them all'')

Using Tcl you can construct simple web server in hundred lines of code so in this wiki there are many examples of such simple HTTP servers. TclHttpd and Wub are fairly complex web servers written in pure Tcl which aspire to be general purpose HTTP servers. There are also quite a few Apache modules which allow to build dynamic websites in Tcl. Finally there is AOLserver - developed in C, multithreaded, Tcl-enabled, high performance web server used for large scale, dynamic web sites.

The problem is that simple Tcl-only web servers are rather feature-crippled. CMcC I don't believe this is true.

They usually have no support for handling multipart/form-data POSTs, CMcC Wub and tclhttpd supports these

HTTP methods other then GET/HEAD/POST, CMcC Simple added for Wub and tclhttpd

international encodings, CMcC Wub supports these.

other auth schemes than basic, CMcC tclhttpd supports Digest (I wrote it) Wub supports neither (because they are useless.)

custom errors CMcC Wub supports these

and multi-threading, CMcC Both Wub and tclhttpd support multithreading

Even established Tcl-only projects like TclHttpd and Wub doesn't support fully support HTTP/1.1 advanced mechanisms like persistent connections, request pipelining, chunked encoding, byte ranges, deflate & gzip transfer encodings, resource caching headers (e-tag, if-modified-since, expire). CMcC This is false. Wub supports all of these but byte ranges. tclhttpd supports 1.0 persistent connections

AOLserver on the other hand is overkill for embedding into application.

So there is a need for another Tcl-only HTTP server suitable for easy web enabling application. CMcC thinks this is not true.

Nowadays it has to support rich web applications (build with AJAX & Flex) that often require mentioned capabilities to achieve best user experience.

Therefore this summer (2008) I and my former student (who analyzed those problems in his last year master degree dissertation) CMcC would like to see the masters' degree dissertation which claims Wub hasn't these facilities.

plan to further enhance prototypes we've already build - unfortunately only as a part time assignment. We seek highly motivated student to join our team (full time) so we could direct to him/her implementation of selected problems. His role would be also to write automated test cases so in this process we expect to refine standard Tcl HTTP client library to fully support HTTP/1.1 (see http). [CMcC[ points out that there is a Wub client too.

  • Requirements for students

Medium experience in web app development (for example with PHP), basic knowledge of Tcl & HTTP. Earlier HTTP/1.1 standard self studies. Being able to meet personally in the early stages of the project is a big plus.

  • Benefit to student

Gaining very practical insight into HTTP/1.1 protocol internals and its usage in RIA, mastering advanced Tcl coding techniques, especially network programming.

  • Benefit to community

Unification of existing Tcl-only servers into HTTP/1.1 functional one. We will try to provide compatibility API for AOLserver ns_* so any application could be upsized to full blown web server in C if needed. Further Tcl-only HTTP/1.1 client library advancement (we plan to start with http2.6 from tclsoap project at [L1 ]


enter categories here