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.
Types of Servers and their applications:
- 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.
- File server –
Shares files and folders, storage space to hold files and folders, or both, over a network Networked computers are the intended clients, even though local programs can be clients
- Game server –
These servers enables several computers or gaming devices to play multiplayer games. Personal computers or gaming consoles are their clients.
- Mail server –
These servers makes email communication possible in the same way as a post office makes snail mail communication possible. Clients of these servers are senders and recipients of email
- Print server –
These severs share one or more printers over a network which eliminates the hassle of physical access. Their clients are computers in need of printing something.
- Proxy server –
This server acts as an intermediary between a client and a server accepting incoming traffic from the client and sending it to the server. Reasons to use a proxy server includes content control and filtering, improving traffic performance, preventing unauthorized network access or simply routing the traffic over a large and complex network. There clients are any networked computer.
- Web server –
These servers hosts web pages. A web server is responsible for making the World Wide Web possible. Each website has one or more web servers. There clients are computers with a web browser.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Basic Network Attacks in Computer Network
- Protection of Servers
- Difference between Storage Area Network (SAN) and Network Attached Storage (NAS)
- Differences between Wireless Adhoc Network and Wireless Sensor Network
- Difference between Next Generation Network and Traditional Network
- Difference between Software Defined Network and Traditional Network
- Computer Network | Leaky bucket algorithm
- HMAC Algorithm in Computer Network
- Introduction of Firewall in Computer Network
- Circuit Switching in Computer Network
- Packet Switching and Delays in Computer Network
- Routing v/s Routed Protocols in Computer Network
- Collision Domain and Broadcast Domain in Computer Network
- Difference between Unicast, Broadcast and Multicast in Computer Network
- Introduction of MAC Address in Computer Network
- Unicode in Computer Network
- Types of Server Virtualization in Computer Network
- Hamming Code in Computer Network
- MAC Filtering in Computer Network
- DHCP Relay Agent in Computer Network
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.