The Client-Server architecture is a distributed computing model where tasks or services are divided between two entities:
- Client: A device or application that requests resources, services, or data from a server.
- Server: A central system or application that processes client requests and provides the requested resources or services.
Key Characteristics:
Two-Tier Model:
- The client and server communicate over a network.
- Clients handle the user interface, while servers manage data and processing.
Centralised Server:
- The server acts as a hub, handling multiple client requests.
Communication Protocols:
- Clients and servers communicate using standardised protocols such as HTTP, FTP, or TCP/IP.
Examples:
- Web Applications: A browser (client) communicates with a web server to fetch website content.
- Email Systems: An email client (e.g., Outlook) connects to a mail server to send and receive emails.
- Database Systems: A client application queries a database server to retrieve or update data.
Advantages:
- Centralised Management: Easier to update, maintain, and secure the server.
- Resource Sharing: Multiple clients can access shared resources efficiently.
- Scalability: Servers can be scaled to handle more clients as needed.
Disadvantages:
- Single Point of Failure: If the server fails, connected clients may lose access to resources.
- Network Dependency: Requires reliable network connectivity for communication.
- Performance Bottlenecks: High traffic or poor server performance can impact clients.
