- Keyboard input is processed through hardware → OS → browser
- Browser's autocomplete suggests URLs based on history/bookmarks
- Browser determines if input is URL or search term
- If valid URL pattern found, proceeds with URL processing
- Browser parses URL components (protocol, domain, path)
- Checks HSTS list to determine if HTTPS is required
- Converts any Unicode characters to Punycode if needed
- Check browser DNS cache
- Try secure DNS first (DNS-over-HTTPS/DNS-over-TLS)
- Check OS DNS cache
- Query DNS resolver (usually ISP's DNS)
- Recursive DNS lookup if needed:
- Root nameservers → TLD nameservers → Authoritative nameservers
- ARP process to find MAC address of gateway
- Establish TCP connection (3-way handshake)
- TLS handshake for HTTPS:
- Verify certificate chain
- Exchange keys
- Establish encrypted session
- Browser sends HTTP(S) request
- Server processes request
- Server sends response
- Browser begins processing response
- Parse HTML → DOM Tree
- Parse CSS → CSSOM
- Combine into Render Tree
- Layout computation (positions/dimensions)
- Paint elements to screen
- Composite layers
- Input validation at keyboard level
- DNS security (DNSSEC, DoH/DoT)
- Network security (TLS, HSTS)
- Content security (CSP, SOP)
- Certificate validation
- Secure rendering pipeline
- Parallel processing
- Predictive pre-fetching
- Resource prioritization
- Hardware acceleration
- Caching at multiple levels
- TCP vs UDP
- HTTP versions (1.1, 2, 3)
- DNS record types
- TLS handshake details
- Browser architecture
- Rendering pipeline
- Security vulnerabilities
- Performance optimization