System Design Basics : How Your Browser Talks to Servers

Hey there!
Welcome to Nikhil on Systems — a beginner-friendly blog series where I share what I’m learning as I dive deep into the world of System Design. I’m not an expert (yet!), just someone who’s curious, consistent, and committed to understanding how large-scale systems work. If you’re on a similar journey — whether you're just getting started or brushing up your concepts — this series is for you. Let’s learn and grow together, one concept at a time.

  1. Client vs Server :

    Now , you might be thinking what is exactly a client , happy to see you curious .
    In a layman language , Client is someone who requests for the resources from the server .

    Technically , it refers to a device (usually a computer, smartphone, or application) that requests and receives services from a server. The client is the entity that initiates communication, asking for data or resources from the server.

Server :
A server is a system that provides the required data , resources or services to the client . It analyzes the incoming requests from the client and responses them accordingly . A server can handle multiple client requests simultaneously .

→ Analogy for Client - Server (real world example) :

A client-server analogy in real life can be a Cafe : you (the client) go to a cafe (the server) and order coffee (request). The cafe starts brewing the coffee (processes the request) and serves it to you (sends the response).

Here's a breakdown of how this analogy maps to the client-server model:

  • Client:

    You, the customer, are the client. You interact with the cafe and place an order.

  • Server:

    The cafe is the server. It receives your order, prepares the coffee, and delivers it to you.

  • Request:

    Your order is the request. You specify what you want (e.g., a cappuccino).

  • Response:

    The cappuccino is the response. The restaurant fulfills your request and delivers it.

  1. Public IP / Global IP vs Private IP / Local IP :

→What is an IP Address ?

IP stands for Internet Protocol .

It’s set of rules governing the format of data sent over the network .

IP Addresses are unique identifiers assigned to each network on the Internet .

IP Address is like the address of a system , which helps in locating the system on the internet .

Private IPPublic IP
ScopeThe scope of Private IP is local.The scope of Public IP is global.
CommunicationIntra-networkInter-network
MannerPrivate IP addresses of the systems connected in a network differ in a uniform manner.Private IP addresses of the systems connected in a network differ may be uniform or non-uniform manner.
MediumWorks on LANWorks on Internet Service
CostFree of costNeeds to a cost to operate
Range10.0.0.0 – 10.255.255.255 , 172.16.0.0 – 172.31.255.255 , 192.168.0.0 – 192.168.255.255Rest all the IP Addresses are public .
SecurityThey are secure.Not secure , may be attacked .

→Why global IP is needed to find servers on the internet ?

They are needed because of the following reasons :

• Unique Identification : Global IPs provide this uniqueness, ensuring that data packets can be directed to the correct server.

• Inter-Network Communication : Global IPs allow devices on different networks to communicate with each other. This is essential for accessing websites, using online services, and hosting servers that are accessible from anywhere on the internet.

• Routing and Data Delivery : Routers use IP addresses to determine the path that data packets should take to reach their destination. Global IPs enable this routing process, ensuring that information reaches the correct server.

In summary, global IP addresses are the foundation of internet communication, enabling devices and servers to be uniquely identified and accessed globally, allowing for the seamless flow of information .

  1. DNS :

    DNS is the Phonebook of the internet .

    As you know it is very difficult for us to learn or note down the IP Addresses of the websites to access them . So to solve this problem DNS comes into picture .

    DNS can map a website name to an IP Address and vice-versa .

    To perform this task it needs a DNS client known as Resolver .

How DNS works ?

When we type a website like https://www.youtube.com/ in our browser, our computer tries to find the IP address.

  • First, it checks the local cache (our browser, operating system, or router) to see if it already knows the IP address.

  • If the local cache doesn’t have the IP, the query is sent to a DNS resolver to find it.

  • Resolver sends the query to a Root DNS server, which points to the TLD server (Top-Level Domain Server).

  • TLD server then directs the resolver to the authoritative nameserver for youtube.com.

  • Authoritative nameserver knows the exact IP address for youtube.com and sends it back to the resolver.

  • Resolver passes the IP address to our computer.

  • Our computer uses the IP address to connect to the real server where the website is hosted.

  • Then website loads in our browser.

DNS resolution process :

DNS (Domain Name System) resolution is the process of translating a user-friendly domain name, like "example.com", into a numerical IP address, like "192.168.1.1", which computers use to communicate.

There are two types of Resolution processes :

i. Recursive Resolution

ii. Iterative Resolution

→ Recursive Resolution :

• First host checks the IP Address into the local cache , if there is IP then it responds otherwise it moves to the root server.

• It sends the query to TLD server and Authoritative Server which send the IP address to the Root Server .

• Now , query is finally resolved and the response travels back to the requesting client .

→ Iterative Resolution :

• Iterative resolution is a type of DNS query process where the DNS resolver asks a DNS server for an answer, and if that server doesn’t know the final answer, it refers the resolver to another DNS server, rather than resolving it on the client’s behalf.

• Used By :

1. Root DNS Server

2. TLD DNS servers

  1. What Happens When Server is Down?

Sometimes, the server you're trying to reach might be unavailable — this is called server downtime.

→ Why does downtime happen?

A server can go down for many reasons:

  • Hardware failure (e.g., disk crash or power issue)

  • Software bugs that crash the app

  • Scheduled maintenance

  • Network issues or overload (too many users at once)

What does this mean for the user?

When the server is down:

  • The client (your browser or app) sends a request...

  • but gets no valid response.

  • This usually leads to timeouts, errors, or a “Service Unavailable” message.

-> How do systems handle this?

That’s where fault tolerance comes in.

Fault tolerance means designing the system in a way that it keeps working even if some parts fail.
For example:

  • Having a backup server or replica

  • Using a load balancer to reroute traffic

  • Retrying failed requests automatically

We’ll explore these strategies in future blogs — but just know this: reliability is a key goal in system design.

🎯 Key Takeaways

  • The Client sends a request, and the Server responds.

  • Public IPs help locate servers on the internet.

  • DNS converts human-readable names into machine-readable IPs.

  • DNS resolution is multi-step and involves caching.

  • If a server goes down, the system fails unless it's fault-tolerant.

🧭 What’s Next?

In the next blog, we’ll explore how to scale systems using vertical and horizontal scaling — and introduce Load Balancers to handle traffic like a pro.

💬 Got Questions?

Leave a comment or reach out! I’m learning too — and we’re all figuring this out one step at a time. 🚀

0
Subscribe to my newsletter

Read articles from developer_nikhil directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

developer_nikhil
developer_nikhil