While it doesn't support writing (POST/PUT etc), for serving files over HTTP from the current directory, Python's built in HTTP server is perfectly fine. It comes with Python 2.4+ as standard.
Couldn't agree more - if all you need is a static file server, SimpleHTTPServer does the job. I made Knod specifically because I could not find a built in HTTP server that allows writing and deleting.
Got the idea while working through the React tutorial some time ago. Thought a zero config server that responds to all of the HTTP verbs would make a nice tool for front end prototyping.
I extended Python SimpleHTTPServer as a data store server for some web games and also as a cross-site XML server for said games. Knod would fit that niche just fine.
I am big fan of the mongoose server[0]. This python thing has issues handling concurrent requests, but i use it as a fallback, if mongoose is not installed.
I used SimpleHTTPServer for a while, but I found it a bit sluggish at times. I replaced SimpleHTTPServer with http-server, and I've been very pleased with its performance:
If you have twisted installed (which is the case on stock OSX), you can use the twisted webserver, which is a lot faster than SimpleHTTPServer and supports concurrent multiple downloads & resumes. I use this alias:
I don't think it was ever meant to be a server beyond a single user on a single machine. It's great for spinning up a server to start prototyping some web pages, etc. locally. Trying to serve content to multiple users (especially at the same time) is asking for trouble.
Which (coupled with SQLite) is what I use for all my PHP development stuff. No futzing around with Nginx or Apache configs, and a Phing or Makefile to run `make server` loading my particular dev setup (setting temporary ENV variables and the like) for the project is priceless. That feature is one of my favourites :)