Intro to Full Stack Development Client Server Architecture

Learning objective: By the end of this lesson, students will be able to explain the roles of client and server software in web development, and recognize the importance of this architecture in full-stack development.

Client/Server architecture

A client browser making a request to a server and getting back a response

In everyday conversation, the terms client and server are often used to describe physical devices. Typically, when people hear the term server, they imagine a large, powerful computer housed in a data center. Similarly, the term client is commonly associated with personal devices, like desktop/laptop computers and smartphones. However, these terms have different meanings in the context of web development.

In web development, client and server describe the functions of different software processes. Understanding the interaction between the client and the server is fundamental. Let’s break it down into simpler terms:

📚 As a developer, it’s essential to understand that the terms client and server refer to roles played by software, not physical devices. The term services is broad and encompasses various actions a server might perform in response to the client’s requests, such as retrieving the correct webpage, processing data, or performing specific tasks.

Why does this matter for full-stack developers?

As a full-stack developer, you’ll work with code running on the client (what the user interacts with in the front-end) and the server (on the back-end, which the user doesn’t interact with directly). Understanding client/server distinction is important for many reasons:

Remember, in this context, we’re focusing on the software part of clients and servers, not the physical devices.