2010-12-08 27 views
5

Estoy desarrollando una aplicación de red que debería ser capaz de contactar servidores DNS.¿cómo resuelve mi navegador web los nombres de dominio?

Me preguntaba cuál sería la mejor manera de hacerlo. Y los buscadores vinieron a mi mente.

Por ejemplo, ¿cómo resuelven Firefox o Chrome los nombres de dominio que puse en la barra de URL?

Quiero decir, escribo http://www.google.com, ¿cómo sabe que tiene que hacer una solicitud TCP a la IP 209.85.195.104?

Gracias!

+0

He leído que la resolución de DNS es hecha por su ISP, pero no sé cuánto esto es cierto y no recuerdo dónde lo leí, lo siento. – BlackBear

+0

Sí, de hecho, en mi resolv.conf los primeros 4 servidores de nombres (de 5) pertenecen a mi ISP. – santiagobasulto

Respuesta

4

En el escenario más simple, los navegadores utilizarían una función como gethostbyname() para resolver nombres a direcciones. Sin embargo, esta función no siempre se implementa de manera conveniente para un navegador (generalmente se bloquea hasta que obtiene una respuesta).

Los navegadores de hoy están empezando a usar "DNS prefetch", donde el navegador enviará solicitudes de DNS directamente a un servidor DNS mientras la página se está cargando, para resolver las direcciones antes de que el usuario haga clic en el siguiente enlace. De esta forma, el usuario no tiene que esperar la resolución del nombre cuando hace clic, y la experiencia de navegación parece más rápida.

6

Aquí es un buen cómic que describe cómo su navegador resuelve nombres de host:

http://www.labnol.org/internet/comic-how-browser-works/18086/

Su entorno debe ser capaz de manejar la resolución de nombres de host para usted. ¿Hay alguna razón por la que necesitarías implementar esto tú mismo?

+0

Gracias, pero no soy un idiota. Sé cómo funcionan los servidores DNS. Solo quiero saber cómo, técnicamente, los navegadores web lo hacen. – santiagobasulto

+1

@santiagobasulto: Imagino que su código golpea la API del sistema operativo anfitrión para obtener esta información. No creo que lo hagan manualmente. Algo como esto: http://msdn.microsoft.com/en-us/library/ms682016%28v=vs.85%29.aspx – David

+0

¡Gracias David! ¿Tiene algún artículo, libro o algo por el estilo para leer un poco más al respecto? – santiagobasulto

Cuestiones relacionadas