Trace exactly what happens when you type a URL and press Enter — every step from DNS lookup to rendered HTML.
Most developers use the internet every day and can't explain how it works. This matters because understanding the journey helps you debug connection failures, DNS issues, and slow page loads.
1. You type: https://github.com
2. DNS lookup: 'What IP is github.com?'
→ Resolver queries root → TLD → authoritative DNS
→ Returns: 140.82.112.3
3. TCP handshake to 140.82.112.3:443
→ SYN → SYN-ACK → ACK
4. TLS handshake (HTTPS)
→ Exchange certificates
→ Agree on encryption
5. HTTP GET / request sent
6. Server processes request
7. HTTP 200 response with HTML
→ Browser parses HTML
→ Fetches CSS, JS, images
→ Renders the page# See DNS resolution
dig github.com
nslookup github.com
# Trace the full DNS path
dig +trace github.com
# Check what DNS server you're using
cat /etc/resolv.conf
nscurl -s https://dns.google/resolve?name=github.com | python3 -m json.tooldig github.com. If it returns an IP, DNS is working. Then try curl -v https://github.com to test the connection.dig, nslookup, curl -v are the three tools for diagnosing network issues.