DNS Prefetch 通过告诉浏览器页面可能从哪些域加载资源,让浏览器在真正请求这些资源之前就完成 DNS 解析,从而减少后续请求的延迟。
正常流程:浏览器遇到外部资源 → 解析域名 → 建立连接 → 下载资源
预解析流程:浏览器提前解析指定域名 → 遇到资源时直接使用已解析的 IP 地址
HTML方式
<!-- 在head中添加 -->
<link rel="dns-prefetch" href="https://cdn.example.com">
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="dns-prefetch" href="https://ajax.googleapis.com">
HTTP Header方式
Link: https://cdn.zmtests.com; rel=dns-prefetch
适用于:
CDN 资源:静态资源所在的 CDN 域名
第三方服务:Google Fonts、Google Analytics、社交媒体插件等
图片域名:专门用于图片服务的域名
API 接口:后续 Ajax 请求要访问的 API 域名
DNS Prefetch 是一种简单但有效的性能优化手段,合理使用可以显著提升网页加载速度,特别是对于依赖多个第三方资源的网站。