What it is

A server is a computer designed to process requests and deliver data to other (client) computers over a local network or the internet.

Not all servers serve websites: everything downloaded over the internet has to come from a server somewhere, like the npm packages you download when setting up a NodeJS app, or the data fed into your weather app on your phone. A sever that serves webpages over HTTP is not surprisingly called a web server.

The simplest web servers are static, meaning that they contain no business logic on the backend and merely function to send the files they have saved locally out over the internet via HTTP. More complex servers feature a database, and server-side logic like authentication. The combination of a server’s operating system, server program and database are called the server stack. Throw in a client-side javascript framework and it is just called the stack, hence the term “full stack developer.”

You can run a static web server as a standalone program using software like Apache or NginX. If you need to have server-side business logic, you’ll probably write your own server app using a backend web framework like NodeJS, Python’s Django or Ruby on Rails.

Why it matters

Every web app uses a server. Any video game, mobile or desktop app that wants to store any information centrally will need a server as well. Understanding how the internet works and how to set up and run servers is not optional.

How to learn it

The MDN docs are a good place to start learning the ropes of server-side programming.