How the Web works - Behind the scenes
Tags: webdev, beginners
Published: 2022-05-19 18:54:25

Have you ever wondered what happens behind the scenes when you input a URL into your browser? and How the browser shows your requested website? Knowing what goes on behind the scenes is not required to develop websites, but if you are intrigued or want to dive deeper into theory, you should understand how the web works. In this article, I will provide a high-level overview of how the web works without delving too deeply into technical details.

## Let's get started

_Note: This article is not about how the internet works._

## The Big Picture
Let's say you want to visit my [portfolio](https://itsrakesh.co) website. Here's the overview of what happens behind the scenes.

You enter a URL in the browser -> Browser requests your server -> Gets a response back -> A website appears.

![the big picture](https://i.imgur.com/YRfgkyW.png)

Now let's break down this big picture into different parts.

## Converting the URL into an IP address
It all starts with typing a URL in the browser. Let's say you entered https://itsrakesh.co. After that, the browser will send a request to your server. But hold on! How does your browser know where to find your website? For example, if you want to visit your friends' house, what do you need? - An address, right? Similarly, a browser needs an IP address in order to make a request to your server. We provide a URL, but the machine cannot read it and we cannot recall the IP address. What is the solution to this problem? Here comes DNS to the rescue.

**DNS** stands for Domain Name System. In simple terms, it deals with domain names, IP addresses and stuff. Each domain is assigned a unique IP address. Itsrakesh.co, for example, is mapped to 75.2.60.5. When you enter a URL, your browser will request DNS to return its IP address.

![Converting the URL into IP address](https://i.imgur.com/ho2UvHi.png)

## Client - Server
Browser got the IP address of your server. Now, using that IP, your browser (client) will submit a request to your server. The server sends a response back to the client. This request-response cycle follows a protocol called **HTTP**(HyperText Transfer Protocol). Each HTTP request consists of a **request line** and some **headers**.

- **Request line** is simply a path to different HTML files along with the request method(We often call these routes)
  For example, `GET /somepath HTTP/1.1`
  
- **Headers** contain information about a request like content type, browser info and so on.

![Client - Server](https://i.imgur.com/bjwxCBC.png)

## Parsing and rendering the response
The server responds to your request by returning the source code. The browser uses that source code to display a web page. Most often this source code is HTML, CSS and JavaScript.

For this, the browser uses a [rendering engine](https://developer.mozilla.org/en-US/docs/Glossary/Rendering_engine) to convert HTML code into visual and interactive elements like text, images, videos and audio.

![Parsing and rendering the response](https://i.imgur.com/LzVQRuG.png)


That's it! But there's so much going on that I couldn't tell it all since it would confuse you. So, in subsequent articles, I'll explain how the internet works and the OSI model.

---

Feel free to ask your questions in the comments.

---

Hope you learned something new. If so, follow me for more articles like this.