Client-Server Architecture

API is often used to allow communication between two separate software systems. However, it can also be used internally to connect different parts of a software application. This latter approach is typically manifested in the client-server software architecture.

The client-server model is a popular software design architecture that, at an abstract level, breaks down software into two parts: client-side and server-side:

  • The client-side (or the client) is the application that runs on the end-user computer. It provides a user interface (UI) that how the application interacts with the end-user. In addition, it may employ and consume resources on the user's machine (computing device), such as local storage. Among web developers, the term "front-end" is often used to describe the client-side.

  • The server-side (or the server) is the application that receives requests from the clients. It contains the logic to send the appropriate data (resource) back to the client. Instead of a user interface, the server usually has an application programming interface (API). Moreover, the server often includes a database, which will persistently store all of the application data. Among web developers, the term "back-end" is often used to describe the server-side.

As long as your software application adheres to the client-server architecture, you are free to build whatever user interface you want on whatever platform you want.

This separation is advantageous as modern software applications are expected to be available across multiple platforms and provide a consistent experience across devices.