En la experiencia web, a menudo encontramos esta situación, es decir, cuando llame a Baidu Alliance, Google Alliance y archivos de nombres de dominio fuera del nombre de dominio donde se encuentra la página web actual, encontraremos un retraso de solicitud muy grave. Entonces, ¿hay alguna forma de resolver este fenómeno de retraso de solicitud severa? ¿Qué es DNS pre -Fetch?
DNS implementa la asignación de nombre de dominio a IP. Acceder al sitio a través de un nombre de dominio requiere una resolución DNS para cada solicitud. Actualmente, cada resolución DNS generalmente es inferior a los 200 ms. En respuesta al problema que requiere mucho tiempo de la resolución DNS, algunos navegadores usan DNS previamente para mejorar la fluidez de acceso.
DNS Prefetch es una tecnología de pre-resolución DNS. Al navegar por una página web, el navegador resolverá y almacenará en caché los nombres de dominio en la página web al cargar la página web. De esta manera, al hacer clic en la conexión en la página web actual, no es necesario resolver DNS, reduciendo el tiempo de espera de los usuarios y mejorando la experiencia del usuario.
Actualmente, los navegadores que admiten DNS Prefetch incluyen Google Chrome y Firefox 3.5
Si desea analizar un nombre de dominio específico en el lado del navegador, puede agregar una etiqueta de enlace a la página para implementarlo. Por ejemplo:
<link rel = dns-prefetch href = http: //img.vevb.com/>
Si desea controlar si el lado del navegador prevoluciona el nombre de dominio, puede controlarlo a través del atributo X-DNS-Prefetch-Control del encabezado HTTP.
Desafortunadamente, solo Google Chrome y Firefox3.5 admiten las etiquetas anteriores
En términos generales, la razón de este retraso no es el ancho de banda o la carga del sitio web de la otra parte, entonces, ¿qué causa exactamente esta situación? Zalan trató de especular, suponiendo que fuera un problema con el DNS, porque la velocidad de resolución de DNS probablemente sea la mayor causa de retraso en los recursos. Entonces, Zaolan agregó el siguiente código al encabezado de la página (utilizado como DNS Pre-Parser):
<meta http-oquiv = x-dns-prefetch-confuntrol content = on />
<link rel = dns-prefetch href = http: //bdimg.share.baidu.com/>
<link rel = dns-prefetch href = http: //nsclick.baidu.com/>
<Link Rel = DNS-Prefetch href = http: //hm.baidu.com/>
<Link Rel = DNS-Prefetch href = http: //eiv.baidu.com/>
<link rel = dns-prefetch href = http: //img.vevb.com/>
El efecto es muy bueno (el navegador de prueba es IE8), y la carga de botones de Baidu Share mejora significativamente al abrir otras páginas.
Aprendamos brevemente sobre DNS-Prefetch:
Como protocolo básico de Internet, el personal de optimización del sitio web se pasa por alto fácilmente a DNS. Ahora la mayoría de los navegadores nuevos se han optimizado para la resolución DNS. Una resolución típica de DNS toma 20-120 milisegundos. Reducir el tiempo y el número de resolución DNS es una buena manera de optimizar. DNS Pretecting es un nombre de dominio con este atributo que no requiere que el usuario haga clic en el enlace para resolver en segundo plano. La resolución de los nombres de dominio y la carga de contenido son operaciones de red en serie, por lo que este método puede reducir el tiempo de espera del usuario y mejorar la experiencia del usuario.
El primer nombre de dominio del navegador DNS resolución y proceso de búsqueda para el sitio web es:
Navegador cache-system-router-cache-ISP DNS Cache-RECURSIVO Búsqueda
Proceso de búsqueda de resolución DNS de nombre de dominio
Chrome tiene una tecnología de captura previa de DNS incorporada, y Firefox 3.5 también presenta esta característica. Dado que Chrome y Firefox 3.5 mismos han optimizado la pre-resolución del DNS en consecuencia, uno de los efectos adversos de la configuración de la pre-resolución del DNS es que puede reducir la experiencia del usuario del navegador Google Chrome y el navegador Firefox Firefox 3.5.
Implementación preparada:
1. Utilice la meta información para informar al navegador que la página actual debe ser previa a los DNS: <meta http-oquiv = x-dns-prefetch-confuntrol content = on />
2. Use etiquetas de enlace en el encabezado de la página para forzar el DNS pre-parse: <Link rel = DNS-Prefetch href = http: //bdimg.share.baidu.com/>>
Nota: DNS-Prefetch debe usarse con precaución. La repetición de la pre-resolución del DNS en varias páginas aumentará el número de consultas DNS repetidas.
PD: La pre-resolución DNS se utiliza principalmente para la optimización de la página front-end del sitio web. Su papel en SEO aún no se ha verificado, pero como parte de la mejora de la experiencia del usuario rel = DNS-Prefetch puede ser digna de descubrimiento.