required to implement a very simple HTTP web server. A web server waits for incoming client connections on a specified port. Once a client connects to the server, the client can issue HTTP requests. Web servers are typically able to service multiple client requests
concurrently using threads.
In what follows we discuss the requirements in more detail and outline the necessary
implementation steps. In a companion document (Testing and Tips) we discuss useful tools that you can use while coding and debugging your web server.
We have provided a NetBeans project as your starting point. This contains a skeleton implementation of the web server itself and is bundled with libraries which provide classes for parsing, constructing and querying HTTP messages. You don't have to develop in NetBeans if you prefer to use a different IDE but you must use the code and libraries provided. You are not permitted to use any other libraries except for the standard Java libraries. Implementations which violate these constraints will be awarded zero marks.