The Hierarchy of DNS Resolution
Understanding which component handles your request first is crucial for troubleshooting slow loading times or stale content issues. The process follows a strict hierarchy defined by the operating system and network stack.
1. Operating System Cache
Your computer maintains a local DNS cache managed by the operating system. This is the first place the system looks when resolving a hostname to an IP address. On Windows, this is handled by the DNS Client service. On macOS and Linux, it depends on the resolver configuration, often using mDNSResponder or nscd.
If the OS cache contains a valid entry for the requested domain, the lookup stops immediately. This prevents any network traffic from being generated for the DNS query itself. The TTL (Time To Live) value returned by the authoritative DNS server determines how long this entry remains valid. Once the TTL expires, the OS cache discards the record, forcing a new query.
2. Browser Cache
Browsers do not typically cache DNS records in the same way they cache HTML, CSS, or images. However, some modern browsers implement their own small DNS caches to speed up repeated lookups within the same session. This browser-level cache is consulted only if the OS cache misses or if the browser bypasses the system resolver for specific reasons.
It is important to note that browser DNS caching is secondary to the OS. If the OS says the IP is X, the browser will generally accept that unless it has overridden the resolver settings. Clearing the browser cache usually clears HTTP resources, not necessarily DNS entries, though some browsers offer specific "Clear DNS Cache" options in advanced flags or settings.
3. Router and Upstream DNS
Routers generally do not act as DNS resolvers for cached client requests. Instead, they forward DNS queries to upstream providers like Google DNS (8.8.8.8) or Cloudflare (1.1.1.1). Some enterprise routers or ISP gateways may perform NAT and logging, but they rarely store DNS responses for individual clients due to memory constraints and varying TTLs.
If the OS and browser caches fail, the query travels through your local network to the configured DNS server. This server checks its own cache before querying the root servers. This is where most of the heavy lifting occurs, and it is why changing your DNS provider can sometimes resolve connectivity issues.
Why Misconceptions Exist
Many users believe the browser is the primary gatekeeper because it is the application they interact with directly. They assume clearing the browser cache should fix all "stale website" problems. However, if the OS cache holds an old IP address, clearing the browser cache will have no effect on DNS resolution.
This distinction is vital when troubleshooting. For example, if you are migrating a website to a new server, you might update the DNS records. Users with an outdated OS cache will still see the old server until their local TTL expires. This is why developers often set low TTL values before major migrations.
How to Clear Caches Correctly
To ensure you are getting the latest DNS information, you must clear the caches in the correct order. Start with the most fundamental layer, the operating system.
- Windows: Open Command Prompt as Administrator and run
ipconfig /flushdns. This clears the DNS Client service cache. - macOS: Open Terminal and run
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder. This restarts the responder daemon. - Linux: If using
nscd, runsudo systemctl restart nscd. For systemd-resolved, useresolvectl flush-caches.
After clearing the OS cache, you may need to restart your browser to ensure it drops any internal DNS buffers. Finally, verify the resolution using a tool like nslookup or dig to confirm you are hitting the upstream server.
When Priority Matters Most
Caching priority becomes critical in scenarios involving CDN changes, security incidents, or network migrations. If a site is compromised and you need to redirect traffic to a clean server, updating the DNS at the registrar is not enough. You must wait for caches to expire or manually flush them.
Similarly, if you suspect a DNS hijacking attack, checking the OS cache can reveal if your machine is being fed malicious IPs locally. In such cases, resetting your network adapter and flushing the OS cache is the first step before investigating router configurations.
Using a URL to Specify a Special IP Address for Domain Resolution provides insight into overriding these defaults when standard caching causes issues. Additionally, Troubleshooting Starlink Connectivity Issues with a Multi-WAN Router and Blocked DNS highlights how external factors can interfere with the resolution chain.Frequently Asked Questions
Does clearing the browser cache clear the DNS cache?
No, clearing the browser cache primarily removes stored web pages, images, and cookies. It does not always clear the underlying DNS records held by the operating system. You must explicitly flush the OS cache to force a fresh DNS lookup.
Can a router cache DNS responses?
Most consumer routers do not cache DNS responses for clients. They act as pass-through devices, forwarding queries to upstream DNS servers. Only specialized enterprise equipment or custom firmware like DD-WRT with specific plugins might implement local DNS caching.
Why does my website still load the old version after I changed DNS?
Your local OS or ISP DNS server likely still has the old IP address cached due to the TTL setting. You need to wait for the TTL to expire or manually flush your local DNS cache to see the updated record.
Is it safe to change my DNS server to Google or Cloudflare?
Yes, it is generally safe and often improves privacy and speed. However, some streaming services or corporate networks may block or restrict non-standard DNS servers. Always check your network policies before changing these settings.
What happens if the DNS cache is corrupted?
A corrupted cache can cause websites to fail to load entirely or redirect to incorrect addresses. Flushing the DNS cache forces the system to rebuild the table from scratch, which usually resolves these errors.