What happens when you type holbertonschool.com in your browser. and press Enter?

Intro:

Taha Yazidi
6 min readJan 7, 2021

One of the main utilities of internet is browsing, we type web addresses and our web browser magically finds and displays the web page we’ve searched for. Maybe the quickness of the response is what make us believe that is a unique and simple request for a webpage, but in reality a lot is going on under the hood. There is a collection of software setup on top of each other called web stack that is required for developing and implement websites. We will try to analyze how your browser is able to get the request page for https://www.holbertonschool.com over the internet.

DNS request:

When typing https://www.holbertonschool.com in the browser, our computer machine would not understand the address written in human language, instead it would look for the IP (Internet Protocol) address, written in binary numbers, for the (‘www.holbertonschool.com’) URL as machines communicates in ones and zeros.

Every website have an IP address leading to the web server the actual web page is located on. That IP is stored on a DNS (Domain Name Service) server, our computer will then make a DNS request to get the IP address from the DNS server.

The DNS request or query is passed through four main DNS servers, here is the traversal order of the query:

  • DNS resolver: Also called a recursive resolver, is the first stop of the DNS query journey, it would look up the IP related to https://www.holbertonschool.com in the cache (fancy word for saved web pages we’ve previously visited). If he doesn't find the IP, the query will be forwarded to a DNS root name server.
  • DNS root name server: Accepting the query which contains the https://www.holbertonschool.com URL and based on domain extension, (.com) in our case, this server main task is to the query to TLD name server.
  • TLD name server: Now our DNS request for https://www.holbertonschool.com’s IP address have reached the third stop, TLD (Top Level Domain) name server hosts all the (.com) domains and return to the recursive resolver by pointing to the authoritative name server to get the IP address.
  • Authoritative name server: Once the recursive resolver gets the response from the TLD server, the DNS request will be forwarded to the last stop of it’s journey; the authoritative name server. This last server accommodates the database containing the IP address for https://www.holbertonschool.com and will provides the DNS resolver with it and at last the resolver will past it to our local machine or computer.

Now our computer have the IP address; e.g :(192.xxx.xxx.xxx)of the web server hosting the web page we’re looking for; the browser on our machine will be able to request and exchange data with the web server. Such interactions over the open internet can put us in danger of exposing our data to hackers and malware. First we need to make sure that the data we’re requesting is reliable and our connection with the web server is persistent and add additional layers of security by using firewalls and encrypt our request by HTTPS/SSL …

TCP/IP:

TCP (Transmission Control Protocol) with the addition of IP (which our browser already collected) make a set called ‘Internet Protocol Suite’ commonly know as TCP/IP. Those protocols have a set of rules on how data should be formatted, addressed, transmitted … and it provides a the reliable connection we need to make those data interaction possible between our machine and the web server. Security is the main issue now, as TCP is open and bidirectional, data can be intercepted by hackers who can maliciously modify it to make damage and collect precious information like usernames, passwords and credit cards numbers.

Firewalls:

Firewall, is a barrier (wall) between the client and the unwanted malicious data modified by hacker circulating on the internet.

We can cite two types of firewalls:

  • Host based: Generally in forms of software firewalls installed on our personal computer , serves as a second layer of protection against malware.
  • Network based: Those types of firewalls are dedicated servers who comes in software and/or hardware forms; they are considered the first layer of protection by filtering internet traffic trough a set of predefined rules.

HTTPS/SSL:

Here we need to take a closer look at these terms by decomposing them for better understanding. HTTPS is the HTTP (HyperText Transfer Protocol) protocol used for transferring data over the world wide web with and additional ‘S’ for ‘secure’. So we can say HTTPS is a secure version of HTTP. But how HTTP became secure? It’s by using a cryptographic protocols such as SSL (Secure Sockets Layer) to encrypt our data before send it over the internet. So the ‘HTTPS’ in https://192.xxx.xxx.xxx our browser have to access the web server stand for secure data transferring protocol.

With our request secured with various implementations of protocols and software, it can now be sent through the web to request the web page relative to https://www.holbertonschool.com without as many security concerns as we had without those previous stated measures.

Load-balancer:

To put everything in a real perspective, a single web server can host a very big number of web pages and the amount of total volume of internet traffic toward that server can prevent us of getting the web page we’re requesting. That’s when load balancing come to play, imagine having a billion of connection requesting for the same page (https://www.holbertonschool.com) as our browser, it would problematic for a small web server to satisfy this amount of traffic. Load balancer can be a software and/or hardware dedicated to distributing network traffic to multiple servers and prevent overloading and other technicals problems that may occur. Imagine it as a network traffic policeman that regulate network traffic based on the state of the web server or destination.

Web server:

A web server can be an actual physical machine and/or a software running to respond to request made. It is the location on which our web page files (HTML, CSS, JavaScript..) are located or can be retrieved from a database by the use of softwares and tools.

Application servers:

Application server is sitting between a web server and a database, it provides as a middleman the utilities for managing (Updating, Adding, Deleting …) the data related to our website https://www.holbertonschool.com. It also provides an additional layer of security especially against SQL injection attacks. These servers are usually maintained and updated by web developer through API’s and other programming languages.

Databases:

Simple and organized tables that gives the easiness of accessibility and managability of data. It is generally managed by DBMS (Data Base Management System) software eg: My Sql, PostgreSQL, Oracle … It reduces the application management time and serves as an efficient handler to serve different applications.

So now we’ve collected the HTML, CSS and JavaScript files for https://www.holbertonschool.com from the database and and response in HTTP is sent back to our local machine who’s able to display into the browser the respective interface.

Ressources:

--

--