1) What do I need to know in order to develop a web server, generally?

A good starting point would be taking a look at current web servers and
seeing what they do well etc. Apache httpd is the most widely used one
which would be a good starting point, particularly feature wise, but
it's also worth taking a look at others such as lighttpd, nginx and
cherokee. Note that the main selling points for the latter are speed
rather than functionality (although I believe this is changing).


I haven't looked at it too deeply, but Mongrel2 looks to be very interesting. IIRC, it's written in pure C and supports several different protocols. I believe it leans heavily on the performance side. However, it's not finished yet.

Since D's concurrency is going to use message passing, you may want to check out Yaws which is written in Erlang to see how they handle connections and what not. However, do keep in mind that creating threads in D is much more expensive than creating processes in Erlang.

Casey

Reply via email to