SpinSpire logo

Background: Client-Server computing and the Web

Client-server computing is a model of software design in which you write two separate programs - a client and a server. They typically run on different machines and communicate with each other over a network to accomplish the system's purpose.

Client Server Diagram

Client Server
A client is a software program that retrieves data from and sends data to a server. Server is an always running (or long lived) process that waits for connections, data, or requests from multiple clients and sends data back to them.
Examples: a web browser, a mobile application, video player Examples: a web server, database server, file server, video server
Clients typically have a friendly user interface (UI). Thus programming them requires UI or frontend expertise. Servers run in the background without a UI and communicate with other servers (such as database, file). Thus programming them requires backend expertise (communication protocols, SQL, data processing, etc.)
Client programs are started by end users on their personal device (laptop, smartphone, etc.) and are thus short lived. Servers are long running or always running on a faceless machine in a data center.

Web client: The browser

Web server

HTTP - the communication protocol


References:
  1. MDN: HTML
  2. MDN: CSS
  3. MDN: JavaScript
  4. MDN: HTTP protocol
  5. Firefox Browser: Developer Tools