Don’t get confused by terminology. Ignore any term that starts with “dark” because the dark web is part of the deep web. Other than “Internet”, you should also ignore anything that ends with “net”. Multiple networks exist on the Internet that have nothing to do with the worldwide web.
The surface web is all the web addresses you can reach with your web browser. The deep web is everything else. If search engines can’t or won’t index a URL, that URL belongs to the deep web. Some examples are website membership areas, web mail systems, pay walls for online newspapers and other places where you’re not allowed to just waltz right in.
Before search engines were invented (with Google being the most popular), no websites were part of the surface web if they weren’t listed in one of the many web directories that existed. Until recently DMOZ (formerly the Open Directory Project) looked a lot like the search pages for Yahoo way back then. Back then, every website had to be manually added. Any that weren’t were part of what we call the deep web today. That term didn’t exist back then.
There are entities that hide their websites intentionally. I’m not going to list all the types, but a lot of them involve drugs.
Tor is the name of a secure, layered network created for anonymous web surfing. The Tor web browser is a modified version of Firefox made for the Tor network. Sometime during development, they made it capable of connecting with website URLs ending with “.onion”, which I call onion links.
Onion links can host actual websites or they can redirect to websites with standard domain names. The ones that can work with just the onion links are part of the so-called hidden or invisible web. They’re no less visible if you use the Tor browser and search engines designed for onion links (like TORCH).
It takes a bit more work to create truly invisible website and then have the right people be able to find it. I can tell you how to create an invisible website but I can’t tell you how to distribute the address.
I’ve done this for myself more times than I can remember. I do it every time I’m moving from web server to web server and every time I start working on a new website. I’ve been a part of the deep web without even realizing it, even if each time was only for a short period.
I use a dummy domain name (or a dummy subdomain name, depending on what I’m doing), or a domain name I actually own. Modern web servers can recognize multiple domain names on one IP address. I configure the dummy domain name on the web server and then add that information to my computer’s hosts file.
Once I’ve set it up, I can reach the website with the dummy domain name. I can’t reach it with the IP address or an any domain name not configured on the web server. If I use some off-the-wall domain name, like “goaway.fartknocker”, I don’t have to worry about someone accidentally getting to it by guessing (typing arbitrary URLs in a search box).