Skip to main content
ℹ️ Reading Order — Start Here

This is Article 1 of 3 before you write any code.
Next: What is .NET and why learn it →
Then: Career Guide — B.Tech/MCA Freshers →

How Web Applications Work

Level: Complete Beginner

ℹ️ What You'll Learn
  • What a web application is in simple words
  • What happens when you open a website or app
  • What frontend, backend, API, and database mean
  • How request and response work
  • How this connects to the School Management System project
  • Why this topic matters before learning C# or .NET

How Web Applications Work — Frontend, Backend, Database architecture


🔤 Quick Definitions

Before we begin, here are key terms you'll see in this article:

TermMeaningReal Example
DNSDomain Name System — finds server address for websiteType "google.com" → DNS finds Google's server (1.2.3.4)
HTTP RequestYou asking for something from serverBrowser sends: "Give me student results for Ravi Kumar"
JSON ResponseData format server sends back{ studentName: "Ravi", marks: 87, subject: "Maths" }
CookiesSmall files stored on your computerYouTube remembers you're logged in using cookies
Backend/ServerProgram running on remote computer.NET program checking if teacher is allowed, fetching marks
APIWay for programs to talk to each otherBrowser talks to .NET using API routes like /api/students/results
DatabasePermanent storage for all dataSQL Server storing 5000 students, 50000 exam results
DeployedApplication is live on internetschool-management.nexcoding.in — anyone can access it

Before you write a single line of code, understand what you are building toward.

Most tutorials throw syntax at you without explaining the bigger picture. After 6 months you know C# but cannot explain how Zomato works. This article fixes that.


What Happens When You Order Food on Zomato?

You tap Search. Results appear. Simple for you — here is what happened in 200 milliseconds:

StepWhoWhat happened
1. RequestYour phoneSends "Find biryani near lat:17.3 long:78.4" to Zomato's server
2. ReceiveZomato serverA program (the backend) receives your message
3. QueryBackend → Database"Find restaurants tagged biryani within 5km" — searches millions of records
4. ResponseServer → Your phoneReturns list of restaurants as JSON data
5. DisplayYour phoneThe frontend renders the JSON as cards with photos, ratings, prices

The program running on Zomato's server is the backend — written in Java, .NET, Python, or Node.js. You never see it. But without it, the app shows nothing.

How It Looks — Simplified Flow Diagram

┌─────────────────────────────────────────────────────────────┐
│ YOU (Browser) │
│ │
│ Type: "Find pizza near me" │
│ Click: Search │
│ │
│ ↓ REQUEST │
│ "Send restaurants with pizza, location: (17.3, 78.4)" │
└─────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────┐
│ Zomato Server (Backend) │
│ │
│ Receives request │
│ Checks: All parameters valid? ✓ │
│ Queries database: │
│ SELECT * FROM Restaurants WHERE category='pizza' │
│ AND distance < 5km FROM (17.3, 78.4) │
│ Found: 23 restaurants │
│ │
│ ↓ RESPONSE │
│ Sends back JSON: │
│ [ { name: "Pizza Hut", rating: 4.5, price: ₹250 }, │
│ { name: "Domino's", rating: 4.8, price: ₹200 }, ... ] │
└─────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────┐
│ YOU (Browser) │
│ │
│ Browser receives JSON │
│ Renders cards: │
│ [Pizza Hut ⭐4.5 ₹250] [Domino's ⭐4.8 ₹200] ... │
│ │
│ You see results in 200ms │
└─────────────────────────────────────────────────────────────┘

How It Looks — Detailed Technical Flow

STEP 1: YOU TYPE IN BROWSER
┌──────────────────────────┐
│ URL: zomato.com │
│ Action: Click Search │
│ Sends HTTP Request ──────────────────→
└──────────────────────────┘

STEP 2: REQUEST TRAVELS (DNS → Server)
┌──────────────────────────────────────────────────┐
│ DNS lookup: "Find server for zomato.com" │
│ Response: "zomato.com is at IP 1.2.3.4" │
│ Browser connects to 1.2.3.4 (TCP handshake) │
└──────────────────────────────────────────────────┘

STEP 3: SERVER RECEIVES & PROCESSES
┌──────────────────────────────────────────────────┐
│ Backend (Java/Python/.NET) receives request │
│ Code runs: │
│ Check user permission ✓ │
│ Validate search parameters ✓ │
│ Build SQL query │
│ Execute: SELECT FROM Restaurants... │
└──────────────────────────────────────────────────┘

STEP 4: DATABASE RETURNS DATA
┌──────────────────────────────────────────────────┐
│ SQL Server searched 50,000 restaurant records │
│ Found 23 matching records │
│ Returns data to backend │
└──────────────────────────────────────────────────┘

STEP 5: BACKEND FORMATS RESPONSE
┌──────────────────────────────────────────────────┐
│ Backend converts data to JSON format │
│ Adds status code (200 = success) │
│ Adds headers (content-type, server info) │
│ Sends HTTP Response ──────────────────→ │
└──────────────────────────────────────────────────┘

STEP 6: BROWSER RECEIVES & DISPLAYS
┌──────────────────────────────────────────────────┐
│ Browser receives JSON │
│ Parses JSON (converts to objects) │
│ JavaScript renders as HTML cards │
│ CSS applies styling (colors, layout) │
│ You see 23 restaurant options │
│ Total time: 200 milliseconds │
└──────────────────────────────────────────────────┘

The Same Pattern in Our School Management System

The project you will build on NexCoding works identically:

StepWhoWhat happened
1. RequestTeacher's browserGET /api/students/{id}/results with JWT token
2. Receive.NET Web APIReceives request, checks: "Is this teacher allowed to see this student?"
3. QueryEF Core → SQL ServerSELECT marks FROM ExamResults JOIN Exams JOIN Subjects WHERE studentId = @id
4. ResponseAPIReturns JSON: { student: "Ravi Kumar", results: [ {subject: "Maths", marks: 87} ] }
5. DisplayReact frontendRenders a results table — teacher sees Ravi Kumar's marks

Every stage of NexCoding builds one part of this flow. By Stage 12 you have built ALL of it.


Real Applications Work Exactly Like This

When You Book a Train on IRCTC

  1. You: Type "Delhi to Hyderabad" + click Search (REQUEST)
  2. IRCTC Server: Checks database for trains between these cities on that date
  3. IRCTC Server: Finds 15 trains, calculates available seats for each
  4. Server → Your browser: Returns list of trains as JSON (RESPONSE)
  5. Your browser: Displays 15 train options with prices, timings, seat count

When You Login to Gmail

  1. You: Enter email + password (REQUEST)
  2. Gmail Server: Checks database — is email registered? Does password match?
  3. Server: If correct, creates session file (cookie) to remember you
  4. Server → Your browser: Returns "Login successful" + cookie (RESPONSE)
  5. Your browser: Stores cookie. Next time you visit, browser sends cookie. Gmail recognizes you without login again.

When Teacher Enters Student Marks (School Management System)

  1. Teacher: Opens marks form, enters "Ravi Kumar scored 87 in Maths" (REQUEST)
  2. Server: Validates — Is this teacher allowed to enter marks? Does Ravi exist? Is 87 valid? (Business rules)
  3. Server: Inserts row into database table ExamResults with studentId, marks, date
  4. Server → Browser: Returns "Marks saved successfully" (RESPONSE)
  5. Next time any student views results: Server finds this record and shows it

All three work the same way. Pattern never changes.


The Three Parts of Every Web Application

Every application — Zomato, WhatsApp, IRCTC, your college ERP — has exactly three parts:

🖥
Frontend — What you see
Runs in your browser or phone. Shows buttons, forms, images. Sends requests. Displays responses.

SMS Example: Login page where teacher enters email/password. Student dashboard showing their results. Teacher form to enter marks.
Tech: HTML, CSS, JavaScript, React, Angular
⚠️ Has NO data of its own — only shows what backend gives it
⚙️
Backend — The brain
Runs on a server. Never visible to users. Applies business rules, validates input, reads/writes database.

SMS Example: .NET program checks: Is teacher password correct? Is teacher allowed to enter marks for this class? Are marks within valid range (0-100)?
Tech: .NET, Java, Python, Node.js
✅ ALL business logic lives here — this is what you build
🗄️
Database — Where data lives
Permanently stores all information. Turn off the server — data is still there. Handles millions of records.

SMS Example: SQL Server tables: Students table (5000 rows), Teachers table (500 rows), ExamResults table (50000+ rows), Subjects table.
Tech: SQL Server, MySQL, PostgreSQL
💾 Everything you "save" goes here — nothing is permanent without it

Every Application Does Exactly 4 Things

Regardless of whether it is Zomato, a hospital system, or your School Management System:

#WhatExample — SMS
1. RECEIVEGet request from userTeacher submits marks for Ravi Kumar
2. PROCESSApply business rulesCheck: marks ≤ MaxMarks? Student exists? Teacher authorised?
3. DATABASERead or write dataINSERT INTO ExamResults or SELECT FROM Students
4. RESPONDSend result backReturn saved result / error message / data as JSON

This pattern is the same in .NET, Java, Python, Node.js, Go, PHP.

The technology changes. The pattern never changes. Learn it once in .NET — you understand it everywhere.


Once You Know .NET — Any Stack is 70% Known

Concept.NET (C#)JavaNode.js
HTTP routing[Route("api/...")]@RequestMappingapp.get('/api/...')
Request handlingIActionResultResponseEntityreq, res
Database ORMEF CoreHibernateSequelize
Dependency InjectionAddScoped()@AutowiredManual / NestJS
Middlewareapp.Use()Filter/Interceptorapp.use()
AuthenticationJWT BearerSpring SecurityPassport.js
Config fileappsettings.jsonapplication.yml.env
Asyncasync/await TaskCompletableFutureasync/await Promise

Same concepts. Different syntax. A .NET developer switching to Java is productive in 2–3 months. To Node.js — 1–2 months.


Python — Right Tool, Wrong Starting Point

Python is excellent — for the right work:

Python ✅Python ❌
Data analysis (pandas, numpy)✅ Best choice
Machine learning (TensorFlow)✅ Best choice
Scripting and automation✅ Good
Enterprise web applications❌ Not standard
Banking / insurance systems❌ Not standard
Large team codebases❌ Dynamic typing = runtime bugs
High-performance APIs❌ GIL limits parallelism

For Indian IT jobs: Service companies (TCS, Infosys, Wipro) build banking, insurance, and government systems using .NET and Java — not Python. Python roles in these companies are mostly data/automation work, not core application development.

Read the Career Guide for the full comparison with job numbers.


Why This Matters for Your Career

Two students. Same 6 months:

Student A — learned Python basics, watched ML tutorials

  • Asked in interview: "How does your application handle 1000 users simultaneously?"
  • Cannot answer — never built a running application

Student B — built School Management System with .NET

  • Asked the same question
  • Answers: "I use async/await so the thread is freed during database calls. I'd add Redis caching for repeated queries. The API handles concurrent requests via the thread pool."
  • Gets the job

The difference is not the language. It is understanding how applications actually work.


ℹ️ 📹 Video Tutorial

Want visual walkthrough of web flows? Video coming soon. Subscribe to NexCoding YouTube for updates.


🔍 Try This Right Now — See the Flow Yourself

Stop reading. Open your browser and watch requests happen live:

Steps:

  1. Open Developer Tools

    • Windows/Linux: Press F12
    • Mac: Press Cmd + Option + I
  2. Go to Network Tab

    • Look for "Network" in the tabs at top
  3. Open Any Website

    • Type google.com in address bar
    • Watch requests appear in real-time
  4. Click on One Request

    • Look at columns:
      • Name: What was requested (image, data, HTML, CSS)
      • Status: 200 = success, 404 = not found
      • Type: document, xhr (API call), image, script, stylesheet
      • Size: How much data was sent
      • Time: How long it took
  5. Click on Request → Look at Tabs

    • Headers tab: Shows metadata, cookies, server info
    • Response tab: Shows actual data server sent (JSON, HTML, etc.)
    • Preview tab: Shows how browser interpreted it

What You'll Observe:

  • Multiple requests appear instantly — One visit loads HTML, CSS, JavaScript, images, and API data. Each is separate request.
  • Status 200 = success — Green checkmark. Request worked.
  • JSON responses — Click an API request, go to Response tab. You'll see JSON: { key: value } — exactly what we talked about
  • Cookies stored — Go to Headers → scroll down. You'll see Cookie: field with values like sessionId=abc123
  • Requests are real — Every request you see is REAL communication between your browser and servers around the world

This is not magic. Every website works exactly like this.

Once you finish NexCoding, you will build this backend. The backend will handle these requests, query databases, and send JSON responses. You will BE THE SERVER.


💡 The Mental Model That Changes Everything

Every time you use an app — Swiggy, PhonePe, your college portal — ask: "What request did my browser just send? What did the backend check? What did it read from the database? What came back?" After 2 weeks of thinking this way, backend development feels natural.


What is .NET — Platform, Language, Jobs in India →

nexcoding.in