It's an understatement to say that the internet is a big deal now. Encompassing entertainment, education, medicine, law, shopping, food, travel, and beyond, the internet has become so entrenched in nearly every aspect of our lives that it's easy to take for granted. How does it even work? Well, we have some good news! In this article, we'll tell you how the internet works by breaking down an example of a single request to a website. To make things even clearer, we'll deliberately omit some technical details.
The internet is a network of computers
Simply put, the internet is a bunch of computers connected to each other. When computers are connected in a network, this means that one computer can send a message to another, and in turn, the second one can respond.
For example, your smartphone (which is itself a little computer, too) might send a request to a Yandex computer which is responsible for rendering the Practicum by Yandex home page at Practicum. The Yandex computer receives this request, and processes it, checks the return address, and returns the requested page in the form of code. Your device takes this page's code and displays the Yandex Practicum home page.
As we're constantly switching pages online, one might get the impression that we're actually "moving" somewhere as we're surfing the web, so to speak. In fact, nobody goes anywhere. Our computer simply makes a request to another one which returns a response, and our computer displays this response on our screen. We don't really surf the internet — we selectively download parts of it.
Clients and servers
Computers can be classified as client or server machines. Client computers are used for reading information (and possibly creating it, but let's not get ahead of ourselves just yet). They typically have keyboards and screens. They're often human-friendly. So, your phone, tablet, and laptop are all examples of client computers.
Servers are also computers, but they are designed to distribute information to clients. Outwardly, they usually look like metal boxes screwed into metal cabinets. They don't have monitors and keyboards, but they do contain huge hard drives, hundreds of gigabytes of RAM, and powerful processors.
In essence, there are no fundamental differences between clients and servers because both are computers. You can install a server program on your work computer, configure it, and use it to distribute websites. You could also sneak into the server room under cover of night, connect your monitor and keyboard to the server to play solitaire on a 32-core processor.
Just for kicks: devices as server candidates
Almost any computer can be a server. Here are some examples:
Your old PC collecting dust in the garage can be converted to a file server. You'll be able to store family photos and make backup copies of important documents. Put the computer in a closet, connect the network cable to it, turn it on and forget about it till the next time you need it.
You can use your computer as a server for Counter-Strike. Other people will be able to rescue virtual hostages and defuse virtual bombs using the power of your computer.
You can buy a Raspberry Pi and connect a Wi-Fi antenna and a battery to it. You will have a pocket server that, at your request, can distribute files, serve websites, or control a Telegram bot.
You can make a server for a smart home system using a Raspberry Pi. It will collect information from sensors in the apartment while you connect to it via the internet and check the temperature of each room, monitor for any sorts of abnormalities, and display what is happening on the cameras.
How are they actually connected?
Everyone understands that computers on the internet are somehow connected. But how exactly are they connected? Imagine the branching roots of a tree or the human circulatory system. In the latter case, the aorta branches into arteries, which further branch into smaller blood vessels. Eventually, blood flows into the smallest blood vessels which are called capillaries. The internet works in a similar way.
There are huge cables that lie underground or at the bottom of the ocean which connect cities, countries, and continents. These are thick fiber-optic bundles carrying colossal amounts of data that connect large internet exchange points (IX or IXP). These are organizations that are responsible for the exchange of internet traffic between cities, countries, and continents. There are hundreds of IXPs around the world.
To put it simply, your internet service provider (ISP) is granted access to the nearest exchange point in order to be able to provide you internet services.
The provider lays a thinner cable in your area and installs a distribution router somewhere nearby. From this router, wires are run through to neighboring houses.
The wire runs to your home. Depending on the internet service provider's infrastructure, another router may be placed somewhere nearby. These devices determine which signals to send. Eventually, a cable from the router is run directly into your apartment. The installation technician connects the cable to something in your home — a small box with flickering lights called a router. This box distributes the Wi-Fi that allows your device to connect to the network.
There are other ways to install the internet, but in general, it goes like this: internet backbone → IXP → ISP → router → your home router → your device. The internet is not some magical realm of content but a huge system of servers, routers, and cables that cover the globe. At the very end of this system is your personal router.
By the way, Internet rumors would have you believe that sharks are one of the main threats to the internet because they love to gnaw on undersea fiber-optic cables. However, in recent years, the International Cable Protection Committee revealed that sharks really don't play a huge part in damaging our subaquatic connections. In reality, shark and fish bites are responsible for less than 1% of all damaged cables. To contrast, around 70% of damage results from fishing and shipping activities, so you can really see the true threat to undersea cables. And we've not even mentioned the damage that undersea earthquakes can cause! Still, the idea of your slow internet being caused by a shark stirs people's imagination a lot more and, on today's internet, that's how things spread.
An example request
What will happen when users try to open the Practicum main page? Let's take a peak behind the curtain.
Let's say you've navigated Practicum in the address bar of your browser. Again, without delving into too many of the technical details, your browser finds that Practicum is stored on a computer with an IP address of 188.8.131.52.
Wait, IP address? IP stands for "Internet Protocol" and all computers on the internet have an IP address. In our case, the browser said, "Make a request to 184.108.40.206."
The computer adds further information to the request: it specifies both the sender and the recipient, and formulates what the request itself is about. Once this is all done, we end up with a data packet that's ready to go. The computer can now send this packet to the router in your home.
Upon receiving the request, the router checks the address. It sees that no computers with this address are connected to this router, so it sends the request to the "senior router."
This higher-level router also sees that it has no connected computers with this IP. So it sends a request one level higher, to the area router. This router then sends the request to an even higher level: the internet service provider.
The provider's router has clear instructions about where a request addressed to 220.127.116.11 should be passed. So it does it. We find ourselves on the main cable, which will lead the request to Practicum by Yandex.
Yandex has thousands of servers, many of these are responsible for hosting Practicum, and one of them serves Practicum's homepage. It receives the request through the router chain and begins processing it.
The program on the server prepares a response to the request. It also determines whether it knows the user — if yes, it will display data relevant for this user on the website. Moreover, this program performs many behind-the-scenes operations to optimize the page.
The program packs the final page's code into small packets and sends them off to the nearest router. To help the response find its way back, each packet contains a return address that indicates the request's origin. The router sends them to a cable where additional routers will pass the packets to the provider. The provider will send them to the desired area where they'll be able to reach their intended destination.
Finally, the packets arrive at your router and it wirelessly passes them on to the computer which made the request.
Your computer receives the packets, unpacks them, assembles something a computer can actually work with, and renders a web page based on this.
It took less than a second to get from your device to the Yandex Practicum server and back, but it's likely that at least fifty machines (routers and servers), were involved in this process.
These were just the basics. In the next article, we'll see what we can do with this new knowledge, talk about web addresses, and we'll discuss how the internet can be blocked (and why this doesn't actually work).
And now that you know how the web works, why not help make it better? At Practicum, we offer online education and mentorship to help you develop a career in tech. You can plunge into the depths of web development or data science and build a portfolio of projects you can show off to your future employers. Plus, you'll do it all while working in an awesome and supportive environment with both peers and mentors.