An Endpoint is reponsible for recieving HTTP requests (from sockets, files, etc), posting the requests to the Server, and sending the HttpResponse back.
Objects that implement this interface handle the HttpRequests.
Server is the core of the system.