If you work in the tech space or are just starting to learn website development and web hosting, you may have seen the term “localhost” here and there. It’s an example of technical jargon that might seem obscure at first. However, it’s actually not too difficult to grasp if you have the background knowledge.
In this quick guide, we’ll tell you what you need to know to start using localhost in your projects. We’ll explain what the term means, why it exists, and how IT professionals utilize it in their day-to-day.
What is localhost?
Localhost is a hostname that refers to the local machine currently making the request. On many computers, localhost is an alias for the IP address 127.0.0.1. When a computer pings this IP address, it is communicating with itself. Localhost is useful for software testing and security purposes independent of a larger network.
We realize that's a lot to take in. So, let’s unpack this definition, starting with IP addresses: What are they, and why are they important?
What is an IP address?
To visit a website, you enter that website’s domain name into your browser bar — for example, hubspot.com.
But, a domain name alone doesn't identify a website. Rather, a domain name is simply an alias for a website’s IP address, a combination of numbers that identifies a device on a network. An IP address is made up of four numbers, each between 0 and 255. For example, the IP address associated with the server that hosts HubSpot's website is 18.104.22.168. Every device has a unique IP address, even your PC.
When you punch “hubspot.com” into your browser bar and hit enter, the Domain Name System (DNS) takes what you entered, sees that it's paired with the IP address 22.214.171.124, and routes your request to the right place, HubSpot’s web server. The reality is a bit more complicated, but that's the gist.
Of course, we don’t need to know the IP addresses of our favorite websites, or even what IP addresses are, because of domain names — it’s much easier to remember and type “hubspot.com” than four individual numbers.
What is a loopback address?
IP addresses can identify individual servers on the internet, as well as devices outside of the internet on local networks. Whenever a new networked device is created, it gets an IP address.
However, some IP addresses are reserved for certain reasons. For instance, all addresses beginning with the number “127” are special IP addresses called “local loopback addresses.” Instead of identifying another device on the internet, a loopback address references a device on your private, local network. This is why no website may have an IP address starting with “127.”
Loopback addresses can’t be reached by outside devices. When you send a request to a loopback address, this triggers a loopback, meaning the request is sent back to the server it came from. As a result, loopbacks don’t go through the internet — they stay in your local network.
Now that we understand IP addresses and loopbacks, we can turn our attention back to localhost.
What does localhost mean?
In a computer network, localhost is a hostname that refers to the computer that is executing a program — you can think of it as meaning “this computer.” The term is used when making a loopback request to one’s own device. These types of requests are useful for testing and security reasons, as we’ll see later.
Usually, you can access the localhost of any computer through the loopback address 127.0.0.1. By default, this IP address references a server running on the current device. In other words, when your computer requests the IP address 127.0.0.1, it’s making a request to itself, its "local host."
The term “localhost” also serves as the domain name for the loopback IP address 127.0.0.1, sort of like how “hubspot.com” stands in for the IP address 126.96.36.199. There’s an important difference, though: If you put “localhost” into your browser bar, your request won’t go through the internet. Instead, you’ll cause a loopback and the request will end back at your computer.
No matter what device you’re using, a request to 127.0.0.1 or “localhost” will be sent back to the same device you’re working on. This doesn’t require any special authorization or equipment — the computer's operating system comes with the ability to act as a server and field loopback requests.
Okay, being able to make requests to your own computer is interesting and all, but what can it be used for? As it turns out, mostly testing. Here are its common uses:
Website and Web Application Testing
Imagine you’re building a website. You’ll probably want to test how your website looks and functions when accessed in a web browser. However, while you’ll eventually deploy your website on a web server, you don’t want your unfinished website online and usable just yet.
Instead, you can host your website files on your personal computer and make these files available via localhost. Then, you can access your localhost through your web browser and simulate the experience of visiting the website from a remote device. Except, everything is kept on your computer and nothing is shared outside it.
Application and web developers use localhost this way all the time, as a private testing server for websites and applications. Localhost lets you test programs on your computer without sending files through the internet, which is more secure and won’t expose your website to the public before it’s ready.
Network and Speed Testing
IT staff and system admins can also use localhost to test the the local network without requiring an internet connection — they just need to send a request to localhost and monitor this request to ensure that the system’s software and hardware are working. Admins can also evaluate the speed of these requests to determine if optimizations should be made.
Blocking Bad Websites
Lastly, admins can reroute requests for known harmful websites to localhost in order to prevent attacks on the network. This is done by modifying a computer’s hosts file, a file that lists domain names and each one's associated IP addresses. Before the DNS, the hosts file was responsible for converting domain names to IP addresses. Though mostly obsolete, hosts files can still be found on modern computers.
If you want to avoid inadvertently visiting a harmful site, you can enter the website’s domain in the hosts file and assign it to the IP address 127.0.0.1. Now, when the domain is entered, the user will be sent safely to localhost instead of the website. There are many pre-made hosts files available online, so admins don’t need to start from scratch.
There’s no place like 127.0.0.1.
A well-known joke among tech types is “There’s no place like 127.0.0.1.” This is a reference to the saying “There’s no place like home” because localhost (and 127.0.0.1) are often referred to as the “home” device.
Forgive me for explaining a joke, but this helps us understand why localhost is important. Localhost acts like a home base that you can ping if you want to run tests without going through the internet — it's a safe way to experiment before releasing your creation to the world.
If you’re not a system administrator or IT professional, chances are you won’t be pinging localhost every day. But, if you ever see it appear in your testing, you’ll have one less thing to decipher.
Originally published Oct 14, 2021 7:00:00 AM, updated October 14 2021