Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

DNS prefetching of subdomains

Do I have to prefetch a subdomain separately?

E.g. when I have <link rel="dns-prefetch" href="//example.com"> do I need an additional tag for //static.example.com as well?

like image 868
damian Avatar asked Apr 28 '16 16:04

damian


2 Answers

I've made the following test: first created simple HTML page

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link rel="dns-prefetch" href="//example.com/">     
  </head>
  <body>
    <a href="http://example.com">Test link</a>
    <a href="http://sub.example.com">Test link 2</a>
  </body>
</html>

For the domain and subdomain for which I own dns nameserver. Then I cleaned dns cache and opened this page in firefox private window. I observed in the logs of my dns nameserver that only request for "example.com" was made and no requests for subdomains.

Then I changed the page as follows:

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link rel="dns-prefetch" href="//example.com/">     
    <link rel="dns-prefetch" href="//sub.example.com/">
  </head>
  <body>
    <a href="http://example.com">Test link</a>
    <a href="http://sub.example.com">Test link 2</a>
  </body>
</html>

Again cleared dns cache and opened this page in firefox private window. Now I observed that dns requests we made for both domain and it's subdomain.

So I can conclude that yes - you have to prefetch subdomains separately.

like image 114
Evk Avatar answered Oct 10 '22 23:10

Evk


You have to prefetch every subdomain separately.

It is how DNS works. You ask for name, it answers back, it knows nothing about "subdomains" it's just a name.

nslookup google.com gives you answers for google.com only, no subdomains.

nslookup www.google.com gives www.google.com only, no top-level domains.

like image 22
Darigaaz Avatar answered Oct 11 '22 00:10

Darigaaz