net-httpserver/documentation_file.txt

22 lines
1.0 KiB
Plaintext

Yorick van Pelt
s4503678
- support HTTP/1.1 (no HTTP/1.0 needed)
- urls without / at the end (and %xx codes)
- etags using sha1sum
- if no index.html: return 404
- only GET support
- persistence and timeouts and connection: close from both sides.
implementation:
implemented using sockets and select
asyncserver.py contains the basic asynchronous server implementation;
clients are stored in a list, and the event loop calls select() with a list of their sockets. Then, the clients are notified if there are any readable/writable/etc sockets that they own. The client connection class that is used can be specified when making the Server object.
server.py builds on it to implement a http server, with HTTPClient implementing the basic HTTP server, and HTTPDirClient implementing the static file server.
difficulties:
Testing took more time than desired, I wasn't sure if I was allowed to use the standard http library (or if it supports the neccesary tests without too much trouble), so I implemented some client functions.