In computing, a server is a computer program or a device that provides functionality for called clients which are other programs or devices. This architecture is called the client–server model. A single overall computation is distributed across multiple processes or devices. Servers can provide various functionalities called services. These services include sharing data or resources among multiple clients, or performing computation for a client. Multiple clients can be served by a single server, and a single client can use multiple servers. A client process may run on the same device. It can also connect over a network to a server to run on a different device. Example of servers may include database servers, mail servers, print servers, file servers, web servers, application servers, and game servers.
Most frequently client–server systems are implemented by the request–response model., i.e., a client sends a request to the server. In this model server performs some action and sends a response back to the client, typically with a result or acknowledgement. Designating a computer as server-class hardware means that it is specialized for running servers on it. This implies that it is more powerful and reliable than standard personal computers. But large computing clusters may be composed of many relatively simple, replaceable server components.
Application server –
These servers hosts web apps (computer programs that run inside a web browser) allowing users in the network to run and use them preventing the installation a copy on their own computers. These servers need not be part of the World Wide Web. There clients are computers with a web browser.
Catalog server –
These servers maintains an index or table of contents of information that can be found across a large distributed network. Distributed network may include computers, users, files shared on file servers, and web apps. Examples of catalog servers are Directory servers and name servers. There clients are any computer program that needs to find something on the network. Example can be a Domain member attempting to log in, an email client looking for an email address, or a user looking for a file
Communications server –
These servers maintains an environment needed for one communication endpoint to find other endpoints and then communicates with them. These servers may or may not include a directory of communication endpoints and a presence detection service, depending on the openness and security parameters of the network. There clients are communication endpoints.
Computing server –
These servers share vast amounts of computing resources which include CPU and random-access memory over a network. Any computer program that needs more CPU power and RAM than a personal computer can probably afford can use these types of servers. The client must be a networked computer to implement the client–server model which is necessity.
Database server –
These servers maintains and shares any form of database over a network. A database is a organized collections of data with predefined properties that may be displayed in a table. Clients of these servers are spreadsheets, accounting software, asset management software or virtually any computer program that consumes well-organized data, especially in large volumes.
Fax server –
These severs share one or more fax machines over a network which eliminates the hassle of physical access. Any fax sender or recipient are the clients of these servers.