update documentation file
parent
6dcd072d50
commit
c5190e903d
|
@ -7,15 +7,19 @@ s4503678
|
||||||
- etags using sha1sum
|
- etags using sha1sum
|
||||||
- if no index.html: return 404
|
- if no index.html: return 404
|
||||||
- only GET support
|
- 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:
|
implementation:
|
||||||
|
|
||||||
implemented using sockets and select
|
implemented in python using select. testing using 'unittest'.
|
||||||
|
|
||||||
asyncserver.py contains the basic asynchronous server implementation;
|
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.
|
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.
|
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:
|
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.
|
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.
|
||||||
|
|
Loading…
Reference in New Issue