Beginners Guide: How the Internet Works
Working on a technology-oriented project invariably means that you have to occasionally talk about technology. And to start with this can cause a few issues for the technophobes. No the internet isn’t a little black box with a flashing red light (sadly), it’s a bit more complicated than that…
It’s amazing! So many fantastic new technical projects popping up in the field of medicine. Even in Newcastle we have Mediwikis, TeamHaem, Geeky Medics, and of course Medisense. All highly tech-focussed with a strong internet presence and groups of highly-motivated and creative doctors and medical students. Oh, and the ‘tech guy’.
Classically, the ‘tech guy’ is a project bolt-on. He wears glasses (check!), types at a million words per minute (check…ish) and thinks almost exclusively in C++ (well, Javascript but ok). He turns up to meetings and finds out about your cool ideas and then heads back into his dimly-lit office and bashes away on a keyboard until magic happens. He occasionally says insightful things like “it’s not a bug, it’s a feature” and “well it works in Chrome on Windows 8!”.
The problem with being classical about it is that the rest of your ‘technology’ company doesn’t know that much about the ‘technology’! So here it is, the big-I (#puns) – a rather rough guide to how the internet works.
To start with let’s talk about “clients” and “servers”. Broadly-speaking, a client is your desktop/phone/tablet and the server is a computer somewhere out there in the internet. From a beginner point of view the server holds the information we want (like a website, or a file or an image) and the client connects to the server to ask for it. Every computer on the internet has an IP address that uniquely identifies it – this will be important later.
The client and server talk to each over the internet using a “protocol”. It’s basically a list of acceptable phrases and expectations of each other – a bit like airline pilots all deciding to talk in English to each other. We won’t worry ourselves about how this all happens, but there are checks to make sure all the messages get there in both directions.
For ease and economy - just like your computer (a client) can run multiple web browsers to connect to websites, a server can run many different programs to provide different functions. This is where we start talking about a “web server” (containing websites) or a “mail server” (dealing with emails). Our server can be all of these things at once! Again, let’s not worry about how this all works. But now when your tech-guy starts worrying about “server load”, you can understand why! Like desktops, faster and more powerful servers cost more money.
Finally, there’s URLs. This stands for Uniform Resource Locator – a fancy way of saying this is standard way of finding things. They start with a protocol (say, “http”), followed by some special charactors (“://”) and then the domain name (www.medisense.org.uk). The domain name is a funny beast – it tells your browser where to go for the website and is much easier to remember than the IP Address of the server we mentioned earlier! The problem is that it means absolutely nothing to your poor computer. The domain name gets converted into the IP Address by some extra requests to different servers (called “name servers”) that your computer makes behind the scenes. This detachment between domain names and IP addresses means that you can have multiple domain names mapped to a single IP Address (and therefore a single server). Your tech guy will have bought the domain name and set everything up so it points to the right IP address.
The URL is completed with a path to the page (“/do/casebank”, like a folder path on your desktop).
Phew, done! Not that complicated eh? Maybe you'll even understand your tech-guy now! To illustrate everything, here is a plain-english website browser (client) asking for a website.
Client: Hello nameserver, I’m trying to find www.medisense.org.uk do you know where it is? Nameserver: Sure, the IP address is 173.254.28.59 Client: Great thanks! Client: Hello 173.254.28.59, I’d like to have the main www.medisense.org.uk page please Webserver: Oh hello, there! Of course, here is all the code for the main page… *lots of code here* Client: Phew, thanks for that.
Beyond that, your web browser does all kinds of magic to make the website look as it does. But I think that might be a topic for another day…