-
Notifications
You must be signed in to change notification settings - Fork 3
HTTP server working with asyncore, based upon http://code.activestate.com/recipes/440665/ from Josiah Carlson
danse/asyncore_http_server
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is an *import* on github of the activestate recipe: http://code.activestate.com/recipes/440665/, with the permission of the author, Josiah Carlson. ----------------------------------------------------------------------- Original pseudo-async* version by Pierre Quentel, available from http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/259148 * It would only be async while reading requests, it would switch to a synchronous write to a socket when writing a response to a socket. Ick. Features this version offers: 1. Uses asynchronous reading and writing to/from sockets all the time. 2. Performs sectioned reads from on-disk files, allowing for serving files of unlimited size. 3. More informative logging. 4. A quick wrapper for logging to a file and stdout/stderr. 5. Trailing-slash redirects on directories. 6. Optional built-in favicon.ico (to reduce the number of spurious log entries). 7. Subclass which does not allow any directory lists or redirecting to /index.htm[l] . 8. Subclass which does not allow any directory lists, but does automatic redirection to /index.htm[l] . 9. Doesn't try to open reserved names on Windows. 10. Has a tuning mechanism to change buffer performance depending on small or large files. For most people, one can run this from the command line and get a reasonably functioning web server with minor issue. I benchmarked this version in my personal projects folder, which contains around a gig of files, sizes ranging from a few kilobytes, to 100 megabytes. I then performed two concurrent "wget -m http://localhost/" calls (from different paths) on Windows 2k (machine is a P4 2.8ghz with hyperthreading, 1.5 gigs memory, reading from an 80 gig SATA drive, writing to a 120 gig PATA drive). On small files, it was able to serve up 15-30 files/second. On larger (10+ meg) files, it was able to serve up at 15+ megs/second (so says adding the speed reported by wget). The server never broke 7 megs of resident memory, and tended to hang below 10% processor utilization. There exists a live host running this web server: nada.ics.uci.edu
About
HTTP server working with asyncore, based upon http://code.activestate.com/recipes/440665/ from Josiah Carlson
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published