diff --git a/documentation_file.txt b/documentation_file.txt index c966e19..8e054ad 100644 --- a/documentation_file.txt +++ b/documentation_file.txt @@ -7,15 +7,19 @@ s4503678 - etags using sha1sum - if no index.html: return 404 - only GET support -- persistence and timeouts and connection: close from both sides. +- persistence and timeouts and 'connection: close' from both sides. +- concurrency with pipelining implementation: -implemented using sockets and select +implemented in python using select. testing using 'unittest'. + 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. +./run_tests.sh port requires the server to be active at the same port, it won't start it. + 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.