Servers, Requests, and Responses

If you are new to web development you probably hear terms like servers and requests bandied about.

Server is probably the more confusing of the term since it gets conflated with physical hardware, i.e. computers sitting in data-centers.

A server, in software-speak, is anything that serves requests at a particular server address on a particular port.  An address is something like dadops.co or google.com and a port is a designated number.  Traditionally a "web server" will serve on port 80 to an end user, or 443 if the user does an HTTPS request.

So what is a request?  A request is data that tells a server what you want.  With web servers that is ultimately a command and the URL, query strings and any request data.  For example https://blog.dadops.co/tag/github/ is telling the server on port 443 of blog.dadops.co that it wants /tag/github/.

That request is an input into software that results in a response.  For a web server this is usually HTML or JSON or possibly a document like an image.  How your server delivers these is a matter of request routing (which we will address later).