This post originated from an RSS feed registered with Python Buzz
by Andrew Dalke.
Original Post: DNS pre-resolution
Feed Title: Andrew Dalke's writings
Feed URL: http://www.dalkescientific.com/writings/diary/diary-rss.xml
Feed Description: Writings from the software side of bioinformatics and chemical informatics, with a heaping of Python thrown in for good measure.
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.