#### Localhost is about program your own HTTP server and test it with an actual browser.
###### Take The necessary time to understand the project and to test it,take a look around the code to ask reasonable questions such as:
###### Explain the basics of an HTTP server.
###### Ask which function they used for I/O Multiplexing.
###### Ask to get an explanation of how select (or equivalent) is working.
###### Ask if they use only one select (or equivalent) and how they've managed the server accept and the client read/write.
###### There should be only one read or one write per client per select (or equivalent). Ask to show you the code that goes from the select (or equivalent) to the read and write of a client.
###### Search for all [read,recv,write,send] and check if the returned value is well checked. (checking only -1 or 0 is not good you should check both)
###### Check return value for O/I functions [read,recv,write,send] . is the auditee checking for `-1` and `0` at the same time.
###### Writing or reading ANY file descriptor without going through the select (or equivalent) is strictly
### Configuration
#### In the configuration file, check if you can do or check the following:
##### Look at the subject configuration file part to compare it to the project configuration file. is it the same?
##### Look for the HTTP response status codes list on internet.
##### Set up multiple servers with different port
##### Set up multiple servers with different hostnames (use something like: curl --resolve example.com:80:127.0.0.1 http://example.com/)
##### Setup default error page
##### Limit the client body (use curl -X POST -H "Content-Type: plain/text" --data "BODY IS HERE write something shorter or longer than body limit")
##### Setup routes in a server to different directories
##### Setup a default file to search for if you ask for a directory
##### Set up a list of methods accepted for a certain route (ex: try to delete something with and without permission)
### Basic checks
###### Using telnet, curl, and prepared files demonstrate that the following features work correctly:
##### In the configuration file setup multiple ports and use different websites, use the browser to check that the configuration is working as expected, and show the right website.
##### In the configuration try to setup the same port multiple times. It should not work.
##### Launch multiple servers at the same time with different configurations but with common ports. Is it working? If it is working, ask why the server should work if one of the configurations isn't working?