KodeKloud.com in your browser, several steps happen behind the scenes before the page appears.
How a browser requests a page
- The browser resolves the domain name to an IP address using DNS (Domain Name System). Think of DNS as a phone book that maps human-friendly names to numeric IP addresses. See Demystifying DNS for more.
- The browser opens a TCP connection to that IP address and requests resources using HTTP or HTTPS.
- The web server at that IP receives the request, reads or generates the requested content, and sends the response back to the browser.
- The browser receives the response and renders the page.

- Lookup DNS with
digornslookup:
- Fetch a page from a server (shows request/response headers):
- HTTP: unencrypted, typically port
80. - HTTPS: HTTP over TLS/SSL (encrypted), typically port
443.
Modern browsers and sites default to HTTPS for privacy and integrity. Always prefer HTTPS for production sites and APIs—use valid TLS certificates and redirect HTTP to HTTPS when possible.

- Traditional servers (or configurations) often use a process-per-connection or thread-per-connection model. As concurrent connections grow, this model can consume more CPU and memory.
- Modern servers favor event-driven, asynchronous designs that handle many connections without creating a thread or process for each connection—this reduces per-connection resource overhead and improves scalability.
Modern examples and ecosystem
- NGINX: a popular event-driven server widely used as a web server, reverse proxy, and load balancer.
- OpenResty: an NGINX-based platform that embeds Lua for advanced scripting.
- Caddy: focuses on simplicity and automatic HTTPS.
- LiteSpeed: a high-performance commercial server with event-driven internals.
- NGINX process model and event loops
- Configuration blocks and directives
- Using NGINX as a reverse proxy and load balancer