跳至主要内容
短.be

DNS 预解析

浏览器提前对链接目标域名进行 DNS 解析的优化技术。可缩短用户点击链接后的页面加载时间。

2026年8月23日 · 约 1 分钟阅读

重定向

DNS 预解析 (DNS Prefetch) 是浏览器预判用户可能点击的链接,提前执行目标域名的 DNS 解析 (将域名转换为 IP 地址) 的优化技术。当用户实际点击链接时,由于 DNS 解析已经完成,页面加载可以更早开始,省下原本用于解析的那段时间。能省下多少取决于线路和 DNS 缓存的状况。

DNS 解析需要多长时间,取决于线路质量以及是否已有缓存,在移动网络下往往更长。DNS 预解析就是把这段等待放到点击之前完成。只需在 HTML 的 head 中添加 <link rel="dns-prefetch" href="https://example.com/"> 即可启用,href 要写包含协议的 URL。

作为提升短链接重定向速度的手段,DNS 预解析非常有效。点击短链接时,首先需要解析短链接服务域名的 DNS,然后还要解析重定向目标域名的 DNS。如果提前对目标域名进行预解析,就可以省去第二次 DNS 解析,提升用户感知速度。

与 DNS 预解析相关的技术还有 preconnect (预先执行 DNS 解析 + TCP 连接 + TLS 握手)、prefetch (预先下载整个资源)、prerender (预先渲染整个页面。不过它现在已不推荐使用,页面级的预先加载改由 Speculation Rules API 指定)。从资源消耗与效果的平衡来看,dns-prefetch 最为轻量且副作用最小,适合在外部链接较多的页面中积极使用。

需要注意的是,DNS 预解析会增加对 DNS 服务器的请求。如果对页面中所有外部链接都设置预解析,会加重 DNS 服务器的负担,因此建议只对重要的链接目标进行设置。另外,dns-prefetch 只对跨源域名有效。自有域名在浏览器读到这条提示时已经解析完成,指定它没有效果。使用 preconnect 时,也可以对同一域名并列写上 dns-prefetch,这样不支持 preconnect 的浏览器至少能提前完成 DNS 解析。

分享到 XHatena

这篇文章对您有帮助吗?

相关术语

相关文章

常见问题

DNS 预解析如何设置?
在 HTML 的 <head> 中添加 <link rel="dns-prefetch" href="https://example.com/"> 即可。href 要写包含协议的 URL。过去常见的写法是像 //example.com 那样省略协议,但现在官方文档的示例都带有协议。
DNS 预解析和 preconnect 有什么区别?
dns-prefetch 只预先执行 DNS 解析。preconnect 除了 DNS 解析外还会预先建立 TCP 连接和 TLS 握手,效果更好但资源消耗也更大。重要的外部资源用 preconnect,其他用 dns-prefetch 即可。
DNS 预解析有什么缺点?
会增加对 DNS 服务器的请求。如果对大量域名设置预解析,会给用户的网络带宽和 DNS 服务器带来额外负担。建议只对用户实际可能点击的链接目标进行设置。

把知识用到真实链接上

免费缩短网址