Nextgen Blog
HomeLearnAIQuantumRoboticsSecuritySpaceAbout
Nextgen Blog

By Anubhav — full stack engineer, IIT Mandi CSE. Deep dives into AI, software engineering, and the technologies shaping the next generation of tech.

Navigate

  • Home
  • Learn
  • Blog
  • Archive
  • About

Topics

  • Artificial Intelligence
  • Quantum Computing
  • Robotics
  • Cybersecurity
  • Space Tech

Connect

Built with ❤️ & By - Anubhav

© 2026 Nextgen Blog by Anubhav. All rights reserved.

Privacy PolicyTerms of Service
Phase 01 · Foundations & Web ArchitectureChapter 3 of 33
02.
Phase 01Read time ~18 minDifficulty advanced

How a Web Application Works

In this chapter
  • 01Why This Chapter Matters
  • 02The Big Picture
  • 03Client and Server
  • 04Client
  • 05Server
  • 06Request and Response
  • 07What Is a URL?
  • 08Domain Names
  • 09DNS — Domain Name System
  • 10IP Address
  • 11Ports
  • 12HTTP
  • 13HTTP Methods
  • 14HTTP Status Codes
  • 15HTTPS
  • 16TCP
  • 17TCP Connection
  • 18The Protocol Stack
  • 19What Happens When You Enter a URL?
  • 20Step 1 — Browser parses the URL
  • 21Step 2 — Browser needs the IP
  • 22Step 3 — Connection is established
  • 23Step 4 — TLS negotiation
  • 24Step 5 — HTTP request
  • 25Step 6 — Request reaches web infrastructure
  • 26Step 7 — Load balancer chooses a server
  • 27Step 8 — Application processes request
  • 28Step 9 — Database returns data
  • 29Step 10 — Application creates response
  • 30Step 11 — Response travels back
  • 31Step 12 — Browser renders the result
  • 32Complete Request Lifecycle
  • 33What Is a Web Server?
  • 34What Is an Application Server?
  • 35Reverse Proxy
  • 36Load Balancer
  • 37Cache
  • 38Database
  • 39Synchronous vs Asynchronous Processing
  • 40Synchronous
  • 41Asynchronous
  • 42Static vs Dynamic Content
  • 43Static Content
  • 44Dynamic Content
  • 45Browser vs Backend
  • 46API Architecture
  • 47One Request May Trigger Many Internal Operations
  • 48Latency Accumulation
  • 49Failure Points
  • 50A Practical Example
  • 51Common Mistakes
  • 52Mistake 1 — Thinking DNS is the internet
  • 53Mistake 2 — Thinking the browser directly talks to the database
  • 54Mistake 3 — Thinking HTTPS and HTTP are completely different application protocols
  • 55Mistake 4 — Assuming every application needs a load balancer
  • 56Mistake 5 — Assuming a cache is the source of truth
  • 57Interview Questions
  • 58Q1. What happens when you type a URL into a browser?
  • 59Q2. What is DNS?
  • 60Q3. What is the difference between HTTP and HTTPS?
  • 61Q4. What is a load balancer?
  • 62Q5. Why do we use a cache?
  • 63Q6. Why don't browsers normally connect directly to databases?
  • 64Q7. What happens if one application server fails?
  • 65Practice Exercises
  • 66Exercise 1
  • 67Exercise 2
  • 68Exercise 3
  • 69Exercise 4
  • 70Exercise 5 — Request Journey
  • 71Mini Design Exercise
  • 72Chapter Summary
  • 73Next Chapter
  • 74Chapter 02 — Networking Fundamentals
In this chapter (74 sections)
01Why This Chapter Matters02The Big Picture03Client and Server04Client05Server06Request and Response07What Is a URL?08Domain Names09DNS — Domain Name System10IP Address11Ports12HTTP13HTTP Methods14HTTP Status Codes15HTTPS16TCP17TCP Connection18The Protocol Stack19What Happens When You Enter a URL?20Step 1 — Browser parses the URL21Step 2 — Browser needs the IP22Step 3 — Connection is established23Step 4 — TLS negotiation24Step 5 — HTTP request25Step 6 — Request reaches web infrastructure26Step 7 — Load balancer chooses a server27Step 8 — Application processes request28Step 9 — Database returns data29Step 10 — Application creates response30Step 11 — Response travels back31Step 12 — Browser renders the result32Complete Request Lifecycle33What Is a Web Server?34What Is an Application Server?35Reverse Proxy36Load Balancer37Cache38Database39Synchronous vs Asynchronous Processing40Synchronous41Asynchronous42Static vs Dynamic Content43Static Content44Dynamic Content45Browser vs Backend46API Architecture47One Request May Trigger Many Internal Operations48Latency Accumulation49Failure Points50A Practical Example51Common Mistakes52Mistake 1 — Thinking DNS is the internet53Mistake 2 — Thinking the browser directly talks to the database54Mistake 3 — Thinking HTTPS and HTTP are completely different application protocols55Mistake 4 — Assuming every application needs a load balancer56Mistake 5 — Assuming a cache is the source of truth57Interview Questions58Q1. What happens when you type a URL into a browser?59Q2. What is DNS?60Q3. What is the difference between HTTP and HTTPS?61Q4. What is a load balancer?62Q5. Why do we use a cache?63Q6. Why don't browsers normally connect directly to databases?64Q7. What happens if one application server fails?65Practice Exercises66Exercise 167Exercise 268Exercise 369Exercise 470Exercise 5 — Request Journey71Mini Design Exercise72Chapter Summary73Next Chapter74Chapter 02 — Networking Fundamentals

1. Why This Chapter Matters#

Before designing large distributed systems, you need to understand what happens when a user performs something as simple as:

https://example.com

A modern web request may pass through many layers:

User
  ↓
Browser
  ↓
DNS
  ↓
Internet / Network
  ↓
TCP
  ↓
TLS
  ↓
HTTP
  ↓
CDN / Reverse Proxy
  ↓
Load Balancer
  ↓
Application Server
  ↓
Cache / Database
  ↓
Application Server
  ↓
HTTP Response
  ↓
Browser
  ↓
User

Every component exists for a reason.

Later in this course, when we design systems such as WhatsApp, YouTube, Uber, Instagram or Amazon, these same concepts will appear repeatedly.


2. The Big Picture#

Imagine that you type:

https://www.example.com/products

into your browser and press Enter.

At a high level:

Browser
   |
   | 1. Find the server
   v
DNS
   |
   | 2. Return IP address
   v
Server IP
   |
   | 3. Establish connection
   v
TCP
   |
   | 4. Secure connection
   v
TLS
   |
   | 5. Send HTTP request
   v
Web infrastructure
   |
   | 6. Route request
   v
Application Server
   |
   | 7. Execute business logic
   v
Database / Cache
   |
   | 8. Return data
   v
Application Server
   |
   | 9. HTTP response
   v
Browser

We will now break this down one step at a time.


3. Client and Server#

The two most basic concepts are:

Client#

The client is the software requesting a service.

Examples:

  • Chrome
  • Firefox
  • Safari
  • Mobile application
  • Desktop application
  • Another backend service

For a website:

Browser = Client

Server#

A server is a system that receives requests and provides responses or services.

Example:

Browser
   |
   | Request
   v
Server
   |
   | Response
   v
Browser

A server could:

  • return HTML
  • return JSON
  • authenticate a user
  • query a database
  • process a payment
  • upload a file
  • generate a response

4. Request and Response#

The basic web interaction is:

Client
   |
   | Request
   v
Server
   |
   | Response
   v
Client

For example:

GET /products

The server might respond with:

{
  "products": [
    {
      "id": 1,
      "name": "Laptop"
    }
  ]
}

This simple model is the foundation of web applications.


5. What Is a URL?#

A URL identifies a resource on the network.

Example:

https://www.example.com/products?id=10

It can be broken into pieces:

https://
   |
   +-- Protocol / scheme
 
www.example.com
   |
   +-- Host / domain
 
/products
   |
   +-- Path
 
?id=10
   |
   +-- Query parameters

A more complete URL can contain:

https://user:password@example.com:443/products?id=10#reviews

Conceptually:

scheme://host:port/path?query#fragment

Important parts:

Part Example Purpose
Scheme https Communication protocol
Host example.com Destination
Port 443 Network service endpoint
Path /products Resource/path
Query ?id=10 Additional parameters
Fragment #reviews Client-side document location

6. Domain Names#

Humans prefer names:

example.com

Computers communicate using network addresses such as:

93.184.216.34

We therefore need a mechanism to translate:

example.com
       ↓
IP address

That mechanism is DNS.


7. DNS — Domain Name System#

DNS stands for:

Domain Name System

Its primary role is translating domain names into IP addresses.

Conceptually:

Browser
   |
   | What is the IP of example.com?
   v
DNS
   |
   | 93.184.216.34
   v
Browser

The browser can then communicate with the destination.

DNS is much more than a simple lookup table. It is a distributed hierarchical system.

We will study DNS deeply in Chapter 03.

For now, remember:

DNS helps clients locate services using human-readable domain names.


8. IP Address#

An IP address identifies a network endpoint.

IPv4 example:

192.168.1.10

Public servers can have publicly reachable addresses.

IPv6 uses a larger address space, for example:

2001:db8::1

The important mental model is:

Domain
  ↓ DNS
IP address
  ↓
Network communication

9. Ports#

A machine can run multiple network services.

For example:

Server
 |
 +-- Port 22   → SSH
 |
 +-- Port 80   → HTTP
 |
 +-- Port 443  → HTTPS
 |
 +-- Port 5432 → PostgreSQL

A port identifies the service endpoint on a host.

A network destination is therefore conceptually:

IP address + port

For example:

93.184.216.34:443

means:

Host: 93.184.216.34
Port: 443

10. HTTP#

HTTP stands for:

Hypertext Transfer Protocol

It defines how clients and servers communicate application-level web messages.

Example request:

GET /products HTTP/1.1
Host: example.com
Accept: application/json

Example response:

HTTP/1.1 200 OK
Content-Type: application/json
 
{
  "products": []
}

HTTP is request/response oriented.


11. HTTP Methods#

Common methods include:

Method Typical purpose
GET Retrieve data
POST Create/process data
PUT Replace a resource
PATCH Partially update a resource
DELETE Delete a resource

Example:

GET /users/10

means:

Retrieve user 10.

Another:

POST /users

could mean:

Create a new user.


12. HTTP Status Codes#

The server communicates the result using a status code.

Common examples:

Code Meaning
200 Successful request
201 Resource created
204 Successful request with no response body
301 Permanent redirect
302 Temporary redirect
400 Bad request
401 Authentication required/failed
403 Forbidden
404 Resource not found
409 Conflict
429 Too many requests
500 Internal server error
502 Bad gateway
503 Service unavailable
504 Gateway timeout

A useful classification:

1xx → Informational
2xx → Success
3xx → Redirection
4xx → Client-side/request problem
5xx → Server-side problem

13. HTTPS#

HTTPS means HTTP communication protected using TLS.

Conceptually:

HTTP
 +
TLS
 =
HTTPS

Without encryption, sensitive data could potentially be exposed while traveling across the network.

HTTPS provides important security properties such as:

  • encryption
  • server authentication
  • protection against certain forms of tampering

A simplified flow:

Browser
   |
   | TLS handshake
   v
Server
   |
   | Secure connection established
   v
Encrypted HTTP communication

We will study TLS and security much more deeply later.


14. TCP#

TCP stands for:

Transmission Control Protocol

For many traditional web connections, TCP provides reliable, ordered delivery between endpoints.

Conceptually:

Application
    ↓
HTTP
    ↓
TLS
    ↓
TCP
    ↓
IP
    ↓
Network

TCP handles things such as:

  • establishing a connection
  • reliable delivery
  • ordering
  • retransmission
  • flow control

You do not normally implement these mechanisms yourself when building a typical web application.


15. TCP Connection#

A simplified TCP connection establishment uses a three-step handshake:

Client                    Server
 
  SYN -------------------->
       <------------------ SYN-ACK
  ACK -------------------->

After the connection is established, application data can flow.

The exact behavior depends on the networking stack and protocol version, but the important beginner mental model is:

TCP establishes a reliable connection between endpoints.


16. The Protocol Stack#

A useful simplified model is:

+----------------------+
| Application          |
| HTTP                 |
+----------------------+
| Security             |
| TLS                  |
+----------------------+
| Transport            |
| TCP                  |
+----------------------+
| Internet             |
| IP                   |
+----------------------+
| Link / Physical      |
| Ethernet / Wi-Fi     |
+----------------------+

Each layer has a responsibility.

This layered architecture is important because system-design problems often involve bottlenecks or failures at different layers.


17. What Happens When You Enter a URL?#

Let's now connect everything.

Suppose:

https://example.com/products

Step 1 — Browser parses the URL#

The browser determines:

Scheme = HTTPS
Host   = example.com
Path   = /products

Step 2 — Browser needs the IP#

It performs DNS resolution.

example.com
     |
     v
DNS
     |
     v
IP address

Step 3 — Connection is established#

The client establishes the required network connection.

For traditional HTTPS over TCP:

Browser
   ↓
TCP connection

Step 4 — TLS negotiation#

The client and server establish a secure TLS session.

Browser ←→ Server
       TLS

Step 5 — HTTP request#

The browser sends something conceptually like:

GET /products HTTP/1.1
Host: example.com

Step 6 — Request reaches web infrastructure#

The request may first reach:

CDN
  ↓
Reverse Proxy
  ↓
Load Balancer

Not every application uses every component.

Step 7 — Load balancer chooses a server#

For example:

                Load Balancer
                 /    |    \
                v     v     v
              App1  App2  App3

Step 8 — Application processes request#

The application may:

Request
  ↓
Authentication
  ↓
Business logic
  ↓
Cache
  ↓
Database

Step 9 — Database returns data#

For example:

Database
   |
   | Product records
   v
Application

Step 10 — Application creates response#

HTTP/1.1 200 OK
Content-Type: application/json

Step 11 — Response travels back#

Application
   ↓
Load Balancer
   ↓
Network
   ↓
Browser

Step 12 — Browser renders the result#

For HTML:

HTML
 ↓
CSS
 ↓
JavaScript
 ↓
Rendered page

For an API request:

JSON
 ↓
Frontend JavaScript
 ↓
UI update

18. Complete Request Lifecycle#

The complete simplified picture:

                         USER
                           |
                           v
                       BROWSER
                           |
                           v
                         DNS
                           |
                           v
                      IP ADDRESS
                           |
                           v
                         TCP
                           |
                           v
                         TLS
                           |
                           v
                         HTTP
                           |
                           v
                    +-------------+
                    |     CDN     |
                    +------+------+
                           |
                           v
                  +------------------+
                  | Reverse Proxy /  |
                  | Load Balancer    |
                  +--------+---------+
                           |
              +------------+------------+
              |            |            |
              v            v            v
           Server A     Server B     Server C
              |            |            |
              +------------+------------+
                           |
                    +------+------+
                    |             |
                    v             v
                  CACHE       DATABASE
                    |             |
                    +------+------+
                           |
                           v
                      APPLICATION
                           |
                           v
                       RESPONSE
                           |
                           v
                        BROWSER
                           |
                           v
                         USER

This diagram will become extremely familiar throughout the course.


19. What Is a Web Server?#

A web server accepts HTTP requests and returns responses.

Examples include:

  • Nginx
  • Apache
  • application runtimes that can directly serve HTTP

A web server can handle:

  • static files
  • HTTP connections
  • reverse proxying
  • TLS termination
  • routing

20. What Is an Application Server?#

An application server executes application/business logic.

For example:

GET /orders/100

The application may:

1. Authenticate user
2. Check authorization
3. Query order
4. Fetch payment information
5. Construct response
6. Return JSON

The architecture might look like:

Client
  |
  v
Web Server / Proxy
  |
  v
Application Server
  |
  v
Database

Modern frameworks can blur the traditional distinction between web server and application server, but the conceptual separation remains useful.


21. Reverse Proxy#

A reverse proxy sits in front of application servers.

Client
  |
  v
Reverse Proxy
  |
  +------> App A
  |
  +------> App B
  |
  +------> App C

It can provide:

  • routing
  • TLS termination
  • load balancing
  • compression
  • caching
  • security controls

Examples of reverse-proxy technologies include Nginx and Envoy.

We will study reverse proxies and load balancing later.


22. Load Balancer#

A load balancer distributes requests across multiple servers.

Without one:

Users
  |
  v
Server

With one:

Users
   |
   v
Load Balancer
   |
   +----> Server A
   |
   +----> Server B
   |
   +----> Server C

Benefits include:

  • traffic distribution
  • redundancy
  • health checks
  • scaling
  • failover

Load balancing becomes a dedicated topic later.


23. Cache#

A cache stores frequently accessed data closer to the application or user.

Example:

Application
    |
    v
   Cache
    |
    | Cache miss
    v
 Database

If the requested data is already cached:

Application
    |
    v
   Cache
    |
    v
  Response

This can reduce:

  • database load
  • latency
  • expensive computation

Caching will receive two dedicated chapters later.


24. Database#

The database stores persistent application data.

Example:

Application
     |
     v
 Database
     |
     +-- Users
     +-- Orders
     +-- Products
     +-- Payments

Databases are often among the most important components in system design because data access patterns strongly influence architecture.

We will later study:

  • SQL
  • NoSQL
  • indexing
  • replication
  • partitioning
  • sharding
  • transactions
  • consistency

25. Synchronous vs Asynchronous Processing#

Not every operation needs to happen during the user's request.

Synchronous#

User
 |
 v
API
 |
 v
Process
 |
 v
Response

The user waits for the operation.

Asynchronous#

User
 |
 v
API
 |
 v
Queue
 |
 v
Immediate response
 
Later:
 
Queue
 |
 v
Worker
 |
 v
Processing

Example:

A user uploads an image.

Instead of making them wait for every thumbnail and transformation:

Upload
  ↓
Store image
  ↓
Queue processing job
  ↓
Return response

Workers can process the image asynchronously.

Messaging and event-driven architecture will be covered later.


26. Static vs Dynamic Content#

Static Content#

Content that can be served without executing user-specific business logic.

Examples:

  • CSS
  • JavaScript bundles
  • images
  • fonts
  • static HTML

These are excellent candidates for CDN delivery.

Dynamic Content#

Content generated based on:

  • user
  • request
  • database
  • permissions
  • current state

Example:

GET /my/orders

The response depends on the authenticated user.

A simplified architecture:

Static:
 
User → CDN → Image/CSS/JS
 
Dynamic:
 
User → Load Balancer → Application → Database

Real systems often combine both.


27. Browser vs Backend#

The browser often handles:

  • rendering UI
  • user interaction
  • local state
  • API calls
  • cookies
  • client-side logic

The backend often handles:

  • business rules
  • authentication
  • authorization
  • database operations
  • payments
  • background jobs
  • security-sensitive operations

Example:

Browser
   |
   | POST /orders
   v
Backend
   |
   +--> Validate request
   |
   +--> Check inventory
   |
   +--> Create order
   |
   +--> Store data
   |
   v
Response

28. API Architecture#

A modern application commonly exposes APIs.

Example:

GET    /users/123
POST   /users
PATCH  /users/123
DELETE /users/123

The frontend can communicate with these endpoints.

React / Next.js
       |
       | HTTPS
       v
Backend API
       |
       v
Database

API design becomes an important part of system design because poor APIs can create scaling, security and usability problems.


29. One Request May Trigger Many Internal Operations#

Consider:

GET /home

It may look like one request to the user.

Internally:

Browser
   |
   v
API
   |
   +--> User Service
   |
   +--> Recommendation Service
   |
   +--> Product Service
   |
   +--> Notification Service
   |
   +--> Cache
   |
   +--> Database

Therefore:

One external request does not necessarily mean one internal operation.

This becomes increasingly important as we move toward microservices and distributed systems.


30. Latency Accumulation#

Suppose a request requires:

DNS        = 10 ms
Network    = 20 ms
Database   = 30 ms
Service A  = 20 ms
Service B  = 30 ms

A simplified sequential total is:

10 + 20 + 30 + 20 + 30
= 110 ms

If service calls happen sequentially, latency can accumulate.

If independent calls can happen concurrently, the critical path may be closer to the slowest parallel operation rather than the sum.

This is why architecture and request flow matter.


31. Failure Points#

Now consider where a request can fail:

Browser
   |
   X DNS failure
   |
   v
DNS
   |
   X Network failure
   |
   v
Server
   |
   X Application failure
   |
   v
Cache
   |
   X Cache unavailable
   |
   v
Database
   |
   X Database failure

System design is partly about asking:

What happens when each dependency fails?

For example:

Cache fails
    ↓
Can application query database?

or:

Database replica fails
    ↓
Can another replica serve reads?

Later we will turn these questions into formal reliability patterns.


32. A Practical Example#

Imagine an e-commerce request:

GET /products/100

Possible flow:

Browser
   |
   v
DNS
   |
   v
CDN / Load Balancer
   |
   v
Product API
   |
   v
Redis Cache
   |
   +---- HIT ----> Return product
   |
   +---- MISS
            |
            v
        PostgreSQL
            |
            v
        Product API
            |
            v
        Redis SET
            |
            v
          Browser

This architecture already uses several system-design concepts:

  • DNS
  • HTTP
  • load balancing
  • caching
  • database
  • latency optimization

We haven't yet studied these components deeply. We are building the mental model first.


33. Common Mistakes#

Mistake 1 — Thinking DNS is the internet#

DNS helps locate services, but DNS itself does not carry the application's entire communication.

DNS → Find destination
HTTP → Application communication

Mistake 2 — Thinking the browser directly talks to the database#

Normally:

Browser
   ↓
Backend API
   ↓
Database

not:

Browser
   ↓
Database

Direct database exposure creates serious architectural and security problems.


Mistake 3 — Thinking HTTPS and HTTP are completely different application protocols#

A useful simplified model is:

HTTP
+
TLS security
=
HTTPS

HTTPS is HTTP communication protected by TLS.


Mistake 4 — Assuming every application needs a load balancer#

A tiny application may not need one.

Architecture should match requirements.


Mistake 5 — Assuming a cache is the source of truth#

A cache generally exists to speed access to data whose authoritative source is elsewhere.

A common model is:

Database = persistent source
Cache    = fast temporary copy

Specific architectures can differ, but this is a useful starting mental model.


34. Interview Questions#

Q1. What happens when you type a URL into a browser?#

A strong answer should mention, at an appropriate level:

URL parsing
→ DNS
→ network connection
→ TLS for HTTPS
→ HTTP request
→ server-side processing
→ response
→ browser rendering

Q2. What is DNS?#

A system that maps domain names to network destinations such as IP addresses.

Q3. What is the difference between HTTP and HTTPS?#

HTTPS is HTTP communication protected by TLS.

Q4. What is a load balancer?#

A component that distributes incoming traffic among backend instances or services.

Q5. Why do we use a cache?#

To reduce latency and/or reduce load on slower or more expensive underlying systems.

Q6. Why don't browsers normally connect directly to databases?#

Because business logic, authorization, validation and security boundaries belong in application/backend services rather than exposing the database directly to untrusted clients.

Q7. What happens if one application server fails?#

With multiple healthy instances behind a suitable load-balancing architecture, traffic can be routed to other instances.


35. Practice Exercises#

Exercise 1#

Explain this architecture:

User
 ↓
Load Balancer
 ↓
Server
 ↓
Database

What does each component do?


Exercise 2#

Add caching:

User
 ↓
Load Balancer
 ↓
Server
 ↓
?
 ↓
Database

Where would you place the cache and why?


Exercise 3#

Suppose you have three application servers:

Server A
Server B
Server C

What component would you put in front of them?

Why?


Exercise 4#

A website is slow because every request performs an expensive database query.

Give three possible approaches to investigate or improve the system.


Exercise 5 — Request Journey#

Explain this request from beginning to end:

https://shop.example.com/products/123

Your explanation should include:

  • DNS
  • IP
  • TCP
  • TLS
  • HTTP
  • load balancer
  • application
  • cache
  • database
  • response

36. Mini Design Exercise#

Design a very small e-commerce architecture.

Requirements:

  • users can browse products
  • users can view product details
  • product data is stored persistently
  • many users may browse simultaneously

Start with:

                    Users
                      |
                      v
                   ??????
                      |
                      v
                   ??????
                      |
                      v
                   ??????

Your task is to identify:

  1. What receives traffic?
  2. Where does business logic run?
  3. Where is product data stored?
  4. Where could caching help?
  5. How would you handle multiple application servers?

Don't worry about advanced distributed systems yet.


37. Chapter Summary#

You should now understand the basic journey:

User
 ↓
Browser
 ↓
DNS
 ↓
IP
 ↓
TCP
 ↓
TLS
 ↓
HTTP
 ↓
CDN / Reverse Proxy / Load Balancer
 ↓
Application Server
 ↓
Cache / Database
 ↓
Application Server
 ↓
HTTP Response
 ↓
Browser
 ↓
User

The most important concepts are:

  • Client
  • Server
  • URL
  • Domain
  • IP address
  • Port
  • DNS
  • HTTP
  • HTTPS
  • TCP
  • TLS
  • Request/response
  • Web server
  • Application server
  • Reverse proxy
  • Load balancer
  • Cache
  • Database
  • Synchronous processing
  • Asynchronous processing
  • Static content
  • Dynamic content

The key mental model is:

A web application is not one box. It is a collection of components communicating across multiple layers.

System Design is the discipline of deciding how those components should interact as requirements, traffic, data and reliability requirements grow.


38. Next Chapter#

Chapter 02 — Networking Fundamentals#

We will go deeper into the network itself:

IP
 ↓
Ports
 ↓
Packets
 ↓
TCP
 ↓
UDP
 ↓
Routing
 ↓
NAT
 ↓
LAN/WAN
 ↓
Bandwidth
 ↓
Latency
 ↓
Network failures
 ↓
Network bottlenecks

This will give us the networking foundation needed before going deeper into DNS, HTTP, load balancing and distributed systems.

Finished this chapter?

Mark it as complete to track your mastery.

Previous ChapterSystem Design — Zero to HeroNext ChapterChapter 02 — Networking Fundamentals
PrevNext