What happens after you enter a URL in the browser?
Implement navigation_steps(url, dns_cache, cached_urls) to return the ordered stages of a browser navigation. Include URL parsing, browser-cache lookup, DNS resolution when needed, TCP connection, TLS for HTTPS, the HTTP request, and response rendering. A cached response skips network stages, while an HTTP URL skips TLS.
The input contains a valid absolute HTTP or HTTPS URL, a map of cached hostnames to IP addresses, and a set of cached URLs. Return an array of stage names.
def navigation_steps(url, dns_cache, cached_urls):