- listen and respond with a basic web page
- serve html from a folder
- does this handle pages with img tags?
- customize 404 pages
- customize 500 pages
- command line options for the server
- number of requests
- port number
- change folder we are serving
- restrict files
- max/mean times to process requests
- most popular files
- dynamically load a class???
- factor out how to send an HTTP response
- handle mime types with a Dictionary and a config file
- csv or json?
- handle all server config with properties or json file
- probably json because it's more common
- fake servlets
- list data from a json file as HTML
- build a simple client to connect
- build a client with a 10 second delay
- show that this is very slow...
- create a new thread for each request
- build an evil client that creates dozens of requests
- performance hit for creating new threads
- spinning up/down a thread is not free
- thread pool