the server itself handles the request and, if necessary, returns a response to the requesting client
concurrent server
It does not handle the request itself, but passes it to a separate thread or another process, after which it immediately waits for the next incoming request.
The daemon keeps track of the current end point of each service implemented by a co-located server. The daemon itself listens to a well-known end point. A client will first contact the daemon, request the end point, and then contact the specific server.
Client-to-server binding using a superserver
have a single superserver listening to each end point associated with a specific service.When a request comes in, the daemon forks a process to handle it. (eg,inetd)