Have you ever wondered what happens when you type www.google.com into your browser, and in a blink of an eye, bam! You’re on Google’s home page? It’s pretty amazing how such a complicated process can just look like magic to a user. We do this lots of times throughout the day. We make what’s called HTTP requests using our browser. And then in under a second, a LOT is going on under the hood. We take it for granted and most people don’t even think about how it actually works.
If you posed this question to a software engineer, you might get one of a hundred different answers. You can answer this question in one sentence or a hundred pages. I think this is a popular question to ask software engineers in technical interviews for a couple of reasons.
One, it gives the interviewer a sense of how comfortable you are with ambiguity. Two, it gives the interviewer an idea of your educational background. If you have a Masters degree in computer science, you’re probably going to give a much more technical and in depth response than a bootcamp graduate with no background in computer science, for example. And then three, the way you respond gives the interviewer and idea of how good you are communicating technical information in a non technical way-how good you are at teaching and explaining what you know-a very valuable skill in computer science.
So Let’s Get Into It. How Does The Internet Work?
- The first thing that happens is you, the user, types in a web address into your browser. Let’s say you’re navigating to www.youtube.com to watch some cute videos of dogs.
- That request first travels to your router, and then to your modem.
- Your modem then sends that request to another machine, something called the name server(more on that in a bit). But essentially, the name servers job is to determine what kind of request you’re making. I.e. are you looking for a website, an email, or did you type a string of characters into your browser as more of a search query.
- Since we’re trying to navigate to Youtube’s website, the name server sends our request to a datacenter.
- The datacenter then routes those packets of information to the destination server, which hosts the website we are visiting.
- The host server then executes the request and returns code in HTML format to you the user, or the “client”.
- Your web browser receives the information and then renders that HTML code into the visual page you’re looking for.
Voila! Seems simple enough right? This is a highly condensed explanation of the basics. But if you want to impress your friends, being able to explain the basics of how the internet works is a pretty cool party trick.
A name server helps connect URLs with the IP address of web servers. Name servers are an important part of the Domain Name System (DNS), which many people call the “phone book of the internet”. One of the most important jobs of the DNS is to translate the domain name you type in to your browser, i.e. youtube.com, into the corresponding IP address. As humans, it would be pretty difficult to remember 18.104.22.168 every time you wanted to watch cute puppy videos. (That string of numbers is in fact the IP address of Youtube. Thus domain names were created to make things more human-friendly.
Another way to think about it is, name servers help organize and route traffic across the internet. It’s easy to get name servers and the DNS confused but they are actually not interchangeable terms. An easy way to conceptualize it is to think of the name server as the library and the DNS records as the catalog.
Okay, but Where are These Data Centers?
If you’ve got an afternoon to kill, I would highly encourage you to look up some of the biggest data centers in the world. It is a truly fascinating internet rabbit hole to venture down. After all, all that data on the web does have to be stored somewhere. In the US, the Lakeside Technology Center in Chicago is the largest data center by far. The LTC is housed in a historic building that contains over 1.1 million square feet and spans an entire city block. Wow, that’s a lot of bits and bytes and dog videos. So why do we have these data centers? And what goes on there?
We have data centers for a couple of reasons. Large companies, government organizations, and financial institutions typically have a lot of sensitive information and data they need somewhere safe to store. Even the age of cloud computing can’t eliminate the need for physical spaces to house and secure sensitive information. Hosting your information “in the cloud” simply means the data is being stored at some other location, and then that company or individual is able to access that data remotely.
Data centers vary greatly in size and scale, depending on the size of organization and what kind of information is being housed. But larger data centers can house tens of thousands of servers, computers, cooling equipment, and other necessary hardware. Usually data centers also have a small staff to run and monitor all these servers and equipment. At some of the larger tech companies, the numbers get big pretty fast. Google reportedly houses over 50,000 servers at just one of their data centers. Pretty crazy right? As users of the internet, it’s easy to forget just how much data is flying around “in the cloud” all the time. But behind the scenes, there is some truly astounding technology at work.
The internet is a fascinating subject because of it’s ever evolving nature and rapid rate of change. It can get complicated pretty quick, trying to understand how it all works. What makes the internet so elegant is how simple it is to type “pit bull snoring” into Youtube.