我们的网站从各种第一方和第三方获取资源,如下所示:
<link rel="dns-prefetch" href="https://connect.facebook.net/">
部分网址未在页面加载时立即使用。是不是因为某种原因没有DNS预取?建议只是预取您可能使用的所有内容吗?
答案 0 :(得分:2)
如果您使用托管DNS,则需要考虑的因素是您生成的查找次数。如果您为每次查询付费,您可能不希望生成一堆dns查找,除非您真的希望用户向他们发出实际请求。
我们在页脚溢出来自页脚中的网站链接时出现此问题。这产生了类似1.8 million dns requests per hour的东西,仅用于dns预取。
这会导致相当大的dns账单,所以我们将x-dns-prefetch-control:off
添加到我们的默认响应标头中以避免这些。
另一个问题是隐私。如果您有用户生成的链接,则某个广告素材可以制作唯一的主机名,并使用它们来跟踪查看该链接的用户,而无需他们实际点击该链接。如果您在https页面(chrome does not prefetch on by default)上有预取链接,则预取可能会向窃听者显示有关站点之间关系的一些信息。