2016-04-28 3 views

ответ

10

Я сделал следующий тест: сначала создал простую HTML-страницу

<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> 

Для домена и поддомена, для которого у меня есть сервер имен DNS. Затем я очистил кэш DNS и открыл эту страницу в частном окне firefox. В журналах моего DNS-сервера я наблюдал, что был сделан запрос только для «example.com», и нет запросов на субдомены.

Затем я изменил страницу следующим образом:

<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> 

снова очищается кэш DNS и открыл эту страницу в FireFox частного окне. Теперь я заметил, что запросы DNS, которые мы сделали для домена и его субдомена.

Поэтому я могу заключить, что да - вы должны предварительно выбирать субдомены отдельно.

+0

Спасибо за ответ! – enyce12

5

Вы должны предварительно выбирать каждый поддомен отдельно.

Как работает DNS. Вы спрашиваете имя, он отвечает, он ничего не знает о «поддоменах», это просто имя.

nslookup google.com дает ответы только на google.com, без поддоменов.

nslookup www.google.com предоставляет только www.google.com, а не домены верхнего уровня.

+2

Это правда, но все еще dns-prefetch - это функция, связанная с браузером, и браузер _could_ (теоретически) проверяет субдомены страниц и prefetch некоторого домена, установленного в dns-prefetch. Конечно, браузеры этого не делают, но все же. – Evk

Смежные вопросы