1. Use statusCode InvalidRequestException.HTTP_BAD_REQUEST if the request does not start with a / 2. Keep in mind that you must verify that files that are accessed reside in the web directory. For example, the following request GET /../../index.html HTTP/1.0 is invalid as the file web/../../index.html is not the same as the directory web/index.html. 3. Several of the Server class methods are tested individually. If the documentation for a method M says "Check for X", then your method M should check for X, and not assume that X won't occur because you checked for it in another method. 4. The getPort method returns the port the server is listening on, and not the port number provided as an argument in main. In the submit server we pass 0 as the port number to use. Using 0 while creating a ServerSocket let's the JVM to pick any available port. The getPort method should return the port selected by the JVM. 5. You can test your submit server by opening your browser and typing: http://localhost:8080/ followed by the request of file. 6. You must close the socket connection for a request. You can do this by closing any of the inputstream, the outputstream or the socket. But unless you close one of these, the client who made the request will not know that your response is complete. Closing the server socket does not close the socket connections that were accepted from it. 7. Don't assume the file a client asks for is a text file. If you try to open an image file (such as a gif file) as a text file and read characters from it, you may corrupt the data you send to the client. Any files you read to service a request should be opened with FileInputStream. 8. GET / HTTP/1.0 is the first line of a valid HTTP request. Some web servers (not ours) will interprete this as a request for /index.html. So findRequestURL should handle this, but getFileToRead("/") will throw an exception. 9. You need to handle HTTP versions 1.0 and 1.1 in the first line of an HTTP request (you don't need to handle any HTTP 1.1 features that would be found in later lines of the HTTP request).