What happens when you type https://www.holbertonschool.com
in your browser and press Enter?
No, no, I’m kidding! On basic terms and common knowledge, the webpage is displayed in front of you and from there you can interact with it by scrolling and more. The website is very well designed I may add, I love the colors and layout.
The real purpose of my blog today is to explain the technical side of the simple gesture described in the title. Writing the address of a website on your search bar and pressing Enter yields many unknown and interesting processes done by the power of coding and servers. So I will be explaining the different concepts applied and inner workings behind going on a website like Holberton’s. Let’s dive in to the concepts first to build an understanding of the tools, services and more used.
First to cover is what is called as the DNS Query (or DNS Request). A DNS Request is the request of information from the user’s computer, known as the DNS Client, to a DNS Server. There are two ways this works: A Recursive Query and a non-Recursive Query. The way a recursive query would work in this case is when someone goes on their browser and enters https://www.holbertonschool.com, a set of different requests will happen due to their computer not knowing the IP address of the website like this:
Comp->DNS Resolver->one of the root DNS Servers->returns location of .com servers->send request to Authoritative DNS server->Authoritative DNS finds IP of https://www.holbertonschool.com and sends result to user’s computer. In summary, the IP address of holberton’s website is returned to the user’s computer after a number of requests passed through different servers and services. That was Recursive Query in simple terms. Non-Recursive query basically just means that the user must try and ask about the website’s domain or IP address from someone. Next up to cover is TCP/IP!
TCP stands for Transmission Control Protocol and IP stands for Internet Protocol. They are a set of standardized rules that allow for computers to communicate on the Internet. Individually they serve a purpose, where IP retrieves the the address to send data to and TCP takes care of data delivery once the IP is found. These two protocols are often used together so there isn’t any comparisons to be made. How they both work is that they simply take this data that it receives and goes through what are called layers to ensure that the data is accurate and sent to the computer or server requesting it. So for example, if when write the Holberton website wrong, we’ll get redirected to a search engine as one of the ways to handle something like a typo in the data. Next concept to talk about is Firewall.
A Firewall is a network security system that monitors and controls both incoming and outgoing network traffic using a set of predetermined rules. It is a system implemented in websites, servers and more as a means of protection against Cyber Attacks and Malware. Very helpful as it keeps our information stored on websites or accounts secure and protected. Up next is covering HTTPS.
HTTPS (Hyper-Text Transfer Protocol Secure) is the secure version of HTTP, which stands for the same thing, without secure in the title. It is used for secure communication across the internet and often used for the sole purpose of being ‘secure’. Websites use HTTPS as a means to protect the exchange of data between clients and their servers from the kinds of attacks mentioned earlier; Cyber Attacks and Malware. Man-in-the-middle attacks are when the attacker discreetly alters the communication between two parties, resulting in stolen information, corrupted information and more harmful circumstances. HTTPS prevents these attacks, keeping sites like www.holbertonschool.com safe for browsing. The next concept to talk about is Load-Balancer.
A Load-Balancer is a server that distributes either network or application traffic across a number of other servers. They are often used to increase the number of concurrent users and also the effectiveness of applications. Next is a Web Server.
A Web Server is simply software or hardware (like a computer for example) dedicated to running this kind of software, satisfying the requests of clients across the World Wide Web! Next is the application server.
An Application Server is literally just a server that hosts applications. Its framework allows for the creation of applications and server environments.
Database is the last concept to cover and what a database is, is a collection of data that can be accessed and stored from a computer.
So to bring this full circle, when we type https://www.holbertonschool.com and press Enter, our request to view the website is passed onto the Web Server, Load Balancer, and Application Server. Upon doing so, our computer’s DNS Query is made and goes through the TCP/IP and Firewall. Our request is secure thanks to HTTPS and once our request is in the Database and the IP is found, we can finally view the website.
Thank you for taking the time to read this blog, I hope it is informative! Any feedback and criticism is welcome, I wish to grow in my abilities as a writer and Software Engineer.
Have a good day!