Go get me a tuna sandwich.
I must have been nine or ten when my dad first explained the client/server concept to me, using a simple analogy that started with that command.
His point? Of the two of us, which was the client, and which was the server?
It clicked. Do you know that “eureka!” moment of sudden brilliant illumination when it all makes perfect sense? (I love those moments!)
In preparing and delivering the tuna sandwich (which I didn’t actually do right then) I would have been the server. Dad would have been the client.
In the realm of computers, the client/server relationship is no different — although it pertains to data rather than to food.
Servers serve things. They store data and interact with clients who come along requesting that data.
Clients request things. They come looking for data that is stored on the server, and request a copy of it to be served up on toasted rye. Except, you know, without the toasted rye.
The most common use of servers would have to be the internet. Websites are stored on servers that serve up a copy of the website when the you (the client) request it.
On a smaller scale, local networks might also make use of a server to provide a centralized location for data storage, communication and other resources.
A very basic server example can be found on my own computer, which I have set up to run as a server so that I can test websites locally. In this case my computer is both the client and the server.
As you can see, in all cases there is a need for the client and server to be somehow linked, whether by proximity (same computer) or by a network.
How the Internet Works
At it’s core, the internet is just a whole bunch of clients and servers that are constantly in communication. It’s a network of interconnected networks.
Have you ever heard that “the internet is down right now”? Truth be told, that has never actually happened. Your network, your connection, your provider, or your region may be experiencing difficulties, and one or more of those may even be “down” due to various factors. But the internet as a whole is never “down”.
Every device that is connected to the internet has a unique IP (Internet Protocol) address to identify it. IP addresses are assigned by your ISP (Internet Service Provider). In some cases your IP may be fixed (it will not change) and in other cases it may be dynamic (it may change each time you connect).
Domain names (e.g. takingnothingforgranted.com) are a human-readable (or rather, a human-remember-able) representation of an IP address. ICANN (Internet Corporation for Assigned Names and Numbers) coordinates the domain name process to keep it organized and to prevent problems. The DNS (Domain Name System) is what translates domain names back into IP addresses for processing over the internet.
So, when you access the internet, the basic message is that your IP is requesting information from another IP. The details are handed off to your ISP so that the ISP can provide results.
Each ISP has special routers that work to route your outgoing and incoming data to its destination and back. They use TCP (Transmission Control Protocol) to send out data packets in search of the destination IP.
Think about how many networks that these data packets might run across before they find the one they’re looking for! And that doesn’t even cover the return trip with the data that you requested!
And remember, all of this happens in milliseconds. Usually. Sometimes we have to sit and wait a few seconds, depending both on the speed of our own connection and/or the speed of the various pathways that our data travels to get to its destination and back.
One fascinating aspect of the entire process — to me — is that nobody actually “owns” the internet. It is maintained in various ways by the Internet Society, but relies on a whole lot of teamwork to function.
How the Web Works
The internet and the World Wide Web (WWW), although very closely related, are not the same thing.
The internet is the infrastructure upon which the web (for short) works.
The world wide web is composed of three main components:
1. The Browser
2. The Server
3. The Protocol
The browser is what you use to access the web, the server is where web pages are stored and provided from, and the protocol (HTTP, or Hyper Text Transfer Protocol) is what sends and receives the data.
Web pages are built using HTML (HyperText Markup Language). Browsers read HTML to determine how web pages should be structured. Usually CSS (Cascading Style Sheets) is used to style how the web page structure is presented.
Programming languages are often used to provide dynamic content on websites. Some programming languages are server-side (PHP, python, etc.) and others are client-side, so they run in your browser (JavaScript, etc.)
To summarize, the world wide web could be described as the means of accessing information over the internet.
Acronyms
The following is a list of acronyms commonly used in networking and the internet.
LAN – Local Area Network
WAN – Wide Area Network
WAP – Wireless Access Point
IP – Internet Protocol
ISP – Internet Service Provider
TCP/IP – Transmission Control Protocol / Internet Protocol
DNS – Domain Name System
DHCP – Dynamic Host Configuration Protocol
ICANN – Internet Corporation for Assigned Names and Numbers
IIS – Internet Information Server
URI – Uniform Resource Identifier
URL – Uniform Resource Locator
WWW – World Wide Web
HTML – HyperText Markup Language
CSS – Cascading Style Sheets
FTP – File Transfer Protocol
HTTP – Hyper Text Transfer Protocol
SMTP – Simple Mail Transfer Protocol
I am still waiting for that tuna sandwich…
Dad