Dalke Scientific Software: More science. Less time. Products
[ previous | newer ]     /home/writings/diary/archive/2009/12/04/dns_preresolution

DNS pre-resolution

Watched the DNS pre-resolution video where Jim Roskind of Google explains that Chrome does an early DNS lookup. Suppose you follow a URL. Your computer needs to translate the host name into an address. It uses DNS, but that can take a second or so. Chrome optimistically assumes you will want the name resolved to an IP address, so does a DNS lookup for you, saving time. It uses the OS cache to store the address, so just in case the address is no longer in cache, it will also do a DNS lookup during mouseover. During testing they noticed that people take about 200ms between when the mouse first gets to the link and when the button is clicked, which is again time saved.

My second thought (first being "neat trick!") was that this could be used for new sorts of user tracking. Suppose I want to know if there are people in the world who look at old versions of a web page. This might be people who have saved a page for future reference. Every day I'll add a new URL somewhere in my document, like "http://2009-12-04.tracker.dalkescientific.com/". When someone uses Chrome to look at that copy, it will look up that URL. Now, I can control my local DNS server, and I can see if there have been any lookups under the tracker.dalkescientific.com subdomain. Five years from now, if there's a request for that specific domain then I know that someone has been looking at a copy of that page made today.

If the URL is http://$userid.2009-12-04.tracker.dalkescientific.com/ where $userid was the one who read the page in the first place, then I will also have an idea of who is rereading the page, or at least who shared the content in the first place.

DNS preresolution in email programs

Email programs often include a way to view HTML content. I use a Mac and Mail.app does this. The HTML content can contain images loaded from a remote site. If the mail application fetched the image from the remote site, then that site knows that you have received the email. For one, that makes your email address a bit more valuable to those who traffick in that sort of data.

I have Mail.app configured so it does not fetch and display HTML images unless I press a button to specifically do that. If Mail.app (or Firefox or any other mail program which includes an HTML display pane) were to take Google's lead and offer DNS pre-fetching, then I hope it is disabled when image loading is also disabled.

Web analytics

Using special domains gives another way to do web analytics, and one which works even when images and Javascript are turned off. Few browse that way and the results will be much more imprecise than what's possible now. For one, there's no cookie information in the DNS request, so it can't do the user-tracking possible with web bugs.

Even if every browser did DNS prefetching, the only other advantage I can see of this over log analysis is that it's a cheap way to let someone else do the log analysis for you, by pointing to subdomains on a DNS server they control. You'll still need to add those a unique URL in every request of every document, and have a way to map the URL back to the page, so it will be very cumbersome.

Proxies

Hmm. To work properly, Chrome would also have to know that it can't pre-fetch DNS entries which go through a proxy.

Comments not enabled. If you're really passionate about my musing and want to get hold of me, you'll have to figure out my email address and do things the old-fashioned way.


Andrew Dalke is an independent consultant focusing on software development for computational chemistry and biology. Need contract programming, help, or training? Contact me



Copyright © 2001-2013 Andrew Dalke Scientific AB