Roadmap › 0. Fundamentals › Step 4
NET
Networking & Hosting — How a Website Works, End to End
The complete life cycle of a web request — OSI and TCP/IP models, IP addresses, subnets and ports, DNS, TCP vs UDP, TLS/HTTPS, HTTP/1.1, HTTP/2 and HTTP/3, browser rendering, cookies and sessions, proxies, load balancers and CDNs, web servers (IIS, Kestrel, Nginx), hosting options from shared hosting to cloud and containers, domains and SSL certificates, deploying an ASP.NET site to IIS and Azure, and troubleshooting network problems.
What it is & where it is used
When you type https://www.shop.com/orders and press Enter, a dozen systems cooperate in under a second: your browser, the operating system, Wi-Fi/router, your ISP, DNS servers, the internet backbone, a CDN, a load balancer, a web server, your application and a database. This course follows that journey step by step, then shows how to host your own site.
| Concept | One-line meaning |
|---|---|
| IP address | The address of a machine on a network (142.250.183.68, 2404:6800::200e) |
| Port | Which program on that machine (443 HTTPS, 80 HTTP, 1433 SQL Server) |
| DNS | The internet's phone book: name → IP address |
| TCP | Reliable, ordered delivery of bytes between two machines |
| TLS | Encryption + server identity → the "S" in HTTPS |
| HTTP | The request/response language of the web |
| Web server | Program that accepts HTTP requests (IIS, Kestrel, Nginx, Apache) |
| Hosting | Where your site physically runs (shared host, VPS, cloud PaaS, containers, serverless) |
Versions & history
| Year | Milestone |
|---|---|
| 1969 | ARPANET — the first packet-switched network |
| 1974–1983 | TCP/IP designed (Cerf & Kahn); ARPANET switches to TCP/IP on 1 Jan 1983 |
| 1983–1987 | DNS (RFC 882/883, then 1034/1035) |
| 1989–1991 | Tim Berners-Lee invents the World Wide Web: HTML, HTTP, URLs, first browser and server |
| 1995–1996 | SSL 2.0/3.0 (Netscape); HTTP/1.0; IIS 1.0 ships with Windows NT; Apache becomes the top web server |
| 1997–1999 | HTTP/1.1 (RFC 2068 → 2616); TLS 1.0 |
| 1998 | IPv6 specified (RFC 2460, later 8200) |
| 2004 | Nginx released |
| 2008 | TLS 1.2 |
| 2015 | HTTP/2; Let's Encrypt free certificates (public launch 2016) |
| 2018 | TLS 1.3 (RFC 8446) |
| 2022 | HTTP/3 over QUIC (RFC 9114) |
| 2024–2025 | Browsers and clouds widely use HTTP/3; IPv6 carries a large share of traffic (≈45 % of Google users) |
Lifecycle
What happens when you open https://www.shop.com/orders — the complete request life cycle:
- URL parsing — the browser splits scheme (
https), host (www.shop.com), port (default 443), path (/orders). If it's not a URL, it becomes a search. - Caches first — HSTS list (forces HTTPS), browser cache, service worker; maybe no network is needed at all.
- DNS lookup — browser cache → OS cache/hosts file → configured resolver (ISP, 8.8.8.8, 1.1.1.1) → root servers →
.comTLD servers →shop.comauthoritative servers → returns an IP (often a CDN's). - TCP connection — three-way handshake (SYN, SYN-ACK, ACK) to IP:443. (HTTP/3 uses QUIC over UDP instead.)
- TLS handshake — agree cipher, server sends its certificate, browser validates the chain and hostname, keys are exchanged; from now on everything is encrypted.
- HTTP request —
GET /orders HTTP/2with headers (Host, cookies, Accept, User-Agent…). - Edge — CDN serves cached static files; otherwise forwards to the origin. A WAF filters attacks.
- Load balancer / reverse proxy — picks a healthy server instance, may terminate TLS.
- Web server + application — IIS/Kestrel passes the request through the pipeline: authentication, routing, controller, business logic, database queries.
- Database — SQL Server runs the query (buffer pool, indexes) and returns rows.
- HTTP response — status (200), headers (Content-Type, Cache-Control, Set-Cookie), body (HTML/JSON), compressed (gzip/Brotli).
- Browser rendering — parse HTML → DOM, CSS → CSSOM, run JavaScript, layout, paint; fetch images/scripts in parallel (more requests, reusing the connection).
- After load — JavaScript calls APIs (fetch/XHR), WebSockets for live data; the connection is kept alive for reuse or closed after idle time.
Tools used to develop
- Browser DevTools — Network tab (timing waterfall: DNS, connect, TLS, TTFB, download), Security tab (certificate), Application tab (cookies, storage, service workers).
- Command line —
ping,tracert/traceroute,nslookup/dig,ipconfig /all/ip a,netstat -ano/ss -tlnp,curl -v,Test-NetConnection host -Port 443(PowerShell),telnet. - Packet analysis — Wireshark, Fiddler, Charles Proxy.
- Online — SSL Labs (TLS grading), DNS checker (propagation), WebPageTest, PageSpeed Insights, downforeveryoneorjustme.
- Hosting — IIS Manager, Azure Portal (App Service, Front Door), Cloudflare dashboard, Nginx, Certbot / win-acme (Let's Encrypt).