How do you provide shared resources and services to multiple clients? What handles the data processing and storage that clients cannot or should not handle?, how do we assume that the client is not
A server is a computer or software that provides services to other computers (clients) over a network. In the client-server model, the server is typically the back end, managing data and logic.
- Listening: Server listens for client requests on specific ports
- Request Handling: Receives, processes, and responds to client requests
- Resource Management: Manages shared resources (databases, files, computation)
- Authentication: Verifies client identity before granting access
- Data Processing: Executes business logic and manipulates data
- Response: Returns results to the client
Servers can be physical machines, virtual machines, or containers. They typically run continuously and are more powerful than client machines.
- Provides services to multiple clients simultaneously
- Usually runs remotely, physically separated from clients
- Handles data storage, processing, and business logic
- Can be scaled horizontally (more machines) or vertically (more resources)
- High availability often requires redundancy
Builds into:
- Back End — Server typically runs back end components
Related:
- Client-Server Model — Server is one side of the model
- Front End — Client counterpart to server
- Server downtime affects all clients
- Security critical—servers are attack targets
- Performance bottlenecks can affect all users