Client devices are typically personal computing devices with network software applications installed that request and receive information over the network or Internet. Mobile devices like your smart phone, tablets, iPads, laptops and also desktop computers can can all function as clients.
Examples of servers include web servers, mail servers, and file servers. Each of these servers provide resources to client devices. Most servers have a one-to-many relationship with clients, meaning a single server can provide multiple resources to multiple clients at one time.
Client-server applications are programs or apps that run on our client devices AND need to access resources from a server. In other words, they need help and can’t do what they need to do alone.
A server computer program or application provides functionality for client programs or devices. So a single overall computation is distributed across multiple processes or devices. Servers can provide various functionalities, often called "services", such as sharing data or resources among multiple clients, or performing computation for a client.
Client devices and applications are often referred to as the “front end” - meaning what the user actually sees.
Server devices and applications are often referred to as the “back end” - meaning the user doesn’t actually SEE what is happening; it’s hidden from their view and they just see the results on their end.
Clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system. A server host runs one or more server programs which share their resources with clients. A client does not share any of its resources, but requests a server's content or service function. Servers store and protect data and process requests from clients. Clients make requests and format data on the device for the end user.