Get the hard way - DNS, TCP/IP, and HTTP

What really happens when we type into the address bar? For starters, is just a name. Your computer must obtain an address in order to locate, connect to, and request data from the site. Let’s manually replicate what this entire process looks like.

  1. Obtain IP address from url

    To find the IP ddress, your computer looks up “” in an internet-wide directory called a “DNS”. Here, it can see the IP address associated with that name. This process is what the IP, or Internet Protocol, is responsible for. is a DNS lookup tool we will use.

    When we look up, using the localhost server and query type “A”, we receive the IP address As we can see, this is the non-authoritative answer. It is non-authoritative because we are using the localhost DNS nameserver, which contains cached info from other nameservers. The authoritative answer will come directly from the DNS nameserver at

    But first we need to find the name of the nameserver.

    To do this, we change our query type to “NS”, and we will see 4 nameservers listed. Now we can pick any one of those 4 nameservers as our new server instead of localhost, using query type “A” again. The resulting IP address is the authoritative answer, because it comes directly from one of the nameservers:

    Note that the DNS server’s address always has #53 at the end. This is because DNS servers listen on port 53 for queries from DNS clients.

  2. Connect to the host

    Now that we have an authoritative IP address, we can proceed with connecting to the host at

    We will use Telnet, a protocol built on TCP/IP that allows computers to communicate with each other and files to be sent/received. The TCP, or Transmission Control Protocol, is responsible for data delivery of packets, routing application protocols to the correct destination.

    The structure of a Telnet command is telnet + IP address + port number.

    Because we are using HTTP, we know to use port 80, which is the port number designated for HTTP. There is a different one for HTTPS: 443.

    So in the command line, we type telnet 80. Now we are connected.

  3. Make HTTP request for file

    The HTTP, or Hypertext Transfer Protocol, usually takes place over TCP/IP, and allows for communication between host and client.

    Now that we are connected, we can proceed with HTTP requests, which is how the client requests files from the server. In our case, we will make an HTTP request to view the homepage of

    In the HTTP protocol, the “GET” command is how we request files. So when we type GET /, the resulting output is the root folder of, also known as the homepage, or simply

    Take a look at the header of the response we received from google. You will see HTTP/1.0 200 OK. This 200 response code means that the request has succeeded.

    We can also telnet directly to, like telnet 80, since is likely in the cache of your localhost. Note that it tries This makes me wonder why the IP address telnet looked up is different than what we found earlier. Regardless, the IP addresses lead to the same location.

In addition to these steps, while loading a web page, the browser will parse the HTML and look for resources required to complete the web page, like images and scripts. For each item, the browser will make additional HTTP requests to the server.