Acerca de URL’s, servidores y DNS

622nd Apr 2010Servidor, Teoría, Web

Muchas veces me he topado con personas que no entienden mucho acerca de este tema, o con situaciones en que me he tenido que ponerme a explicar lo que yo entiendo del sistema.

Cómo funciona en general el sistema de los sitios Web?

Para que un sitio web se vea en internet, debe contar de dos elementos:

  1. Una URL (tudominio.com o algo así)
  2. Un servidor (donde se almacenarán los archivos de tu sitio)

La URL es lo que escriben las personas en su navegador. Es algo así como la dirección de la casa o del negocio de alguien. Una cosa es tener la dirección, pero que pasa si llego allá y no hay nada?…un terreno vacío?. Bueno, eso suele suceder. Aunque les suene increíble, hay quienes no saben que un sitio ocupa un espacio “físico”. Consta de archivos y esos archivos deben ser almacenados en algún espacio en Internet. Algo así como tener un “disco duro” en alguna parte de Interntet. Esa parte es un “servidor”.

En Internet todos los servidores o computadores que se conectan se identifican en base a las direcciones IP (“Internet Protocol”). Algo así como la cédula de identidad de cada persona (similar a 123.456.789.123). Al momento de encender un computador y conectarse a internet, a este computador se le asigna una dirección IP. Y al servidor, al ser un computador real ubicado en alguna parte del mundo, al momento en que lo encienden, también se le asigna una dirección IP.

Por lo tanto, si tengo mis archivos en un servidor, y este servidor tiene su dirección IP, puedo ir a “la dirección de su casa” a ver los archivos que tiene dentro. Probablemente si ingreso en mi navegador su dirección IP pueda ver el sitio, sin necesidad de que esté asociado a una URL. Podría entonces ir a la página web http://123.456.789.123/ y ver el sitio que estoy buscando. Como ejemplo de esto, para ingresar a google yo puedo ir a http://www.google.com o a http://209.85.195.104.

Entonces nos acabamos de dar cuenta que la URL es sólo un “acceso directo”. El dominio es SOLAMENTE un “ayuda memoria” para tener que recordar una palabra y no un número.

La cosa ahora es “¿cómo asociar mi URL a mi servidor?”. Fácil. Al comprar un dominio (o URL) me van a solicitar, junto con todos mis datos, que ingrese los DNS del servidor al que lo quiero asociar. Estos DNS corresponden a direcciones IP (estos números que los identifican en internet) o a otras URL (que previamente fueron asociadas al servidor). Estos DNS son proporcionados por la propia empresa con que contraté mi servidor (generalmente uno recibe un correo con esta información) y debo ingresarlos en el formulario correspondiente. De esta manera le estoy diciendo a mi URL que cuando alguien escriba http://www.midominio.com en su navegador, el sistema internamente lo lleve a http://123.456.789.123, y pueda ver mi sitio web.

Obviamente, para que mi sitio se vea, tengo que haber subido previamente los archivos de mi página web a mi servidor.

Por otro lado el servidor es algo más que un simple computador. En el hosting se almacena todo lo que sea almacenable de mi sitio, como los archivos, las bases de datos, las cuentas de correo. Además el servidor es configurable por el usuario a través del “panel de control”. El problema es que todos los paneles de controles son distintos para cada hosting, asique no puedo hablar mucho acerca de eso.

Los archivos, por ejemplo, se almacenan en el “hosting” de nuestro servidor. Para acceder a mi hosting tengo que ingresar (con un nombre de usuario y una contraseña) a una cuenta FTP (“file transfer protocol” o “protocolo de transferencia de archivos”). Para eso tengo que utilizar un programa que me permita hacer esta conexión, y que, una vez conectado me va a mostrar a un lado el disco duro de mi computador y al otro el disco duro de mi servidor, para que yo pueda “subir” los archivos.

Las bases de datos, por otro lado, se almacenan en el sistema de bases de datos, al cual también debo acceder a través de un nombre de usuario y contraseña, a través de una página Web. En las bases de datos no hay archivos que subir. Lo que hay es información, la cual igual ocupa un espacio y debe ser almacenada en alguna parte de nuestro servidor.

Y el sistema de correos electrónicos también se almacena en alguna otra parte de nuestro servidor. Desde el panel de control de nuestro servidor podremos crear cuentas y asignarles contraseñas para que sean usadas como todos sabemos. El tema es que todos los correos que llegan también ocupan un espacio que debe ser reservado en nuestro servidor para esto.

Por lo tanto, si contratamos un servidor con 200 MB de espacio, tenemos que considerar que estos 200 megas deberán ser divididos entre nuestros archivos (cuenta FTP), nuestra base de datos y nuestros correos.

En el fondo, el resumen de todo esto es que el dominio SOLAMENTE aputa hacia un servidor. En el dominio no se configura nada excepto hacia donde se apunta, para lo cual debemos tener un nombre de usuario y contraseña generalmente (o sólo una contraseña en algunos casos). En el servidor (a través de su panel de control) podremos configurar todo el resto de las cosas, como cuentas ftp, bases de datos, cuentas de correo, tipos de usuario, etc.

Y entonces… ¿cómo podemos “ahorrar espacio”?

Existe una posibilidad para almacenar los correos FUERA de nuestro servidor. Por ejemplo, Google ofrece su servicio Google Apps, que permite administrar y almacenar los correos.  Para eso nosotros tenemos que configurar nuestro servidor modificando algo llamado “Registros MX” (hay que considerar que no todos los servidores permiten cambiar los Registros MX).

Al modificar estos registros le vamos a estar diciendo a nuestro servidor que cuando reciba un correo no se preocupe por él sino que deje que el nuevo servidor que especificamos reciba, procese y almacene el correo. Esto quiere decir que se puede tener un sitio alojado en un servidor en un lugar y los correos administrarlos en otro servidor en otro lugar del mundo. Si se cae el servidor del sitio no va a afectar al servidor de los correos y viceversa.

Tipos de servidores

Existen dos tipos: los servidores compartidos y los servidores privados.

Un servidor privado es “privado”, como su nombre lo indica. Esto quiere decir que el computador donde se almacenan los datos es exclusivo para nostoros. En ese computador solamente va a haber archivos e información nuestra. Vamos a poder configurarlo a nuestro gusto y POR SUPESTO es muchísimo más caro que un servidor compartido.

En los servidores compartidos, el computador en el que está alojado nuestro sitio, aloja muchos otros sitios (de gente que no conocemos). Es decir, que nos venden un trozo del pastel. Esto implica que si nosotros tenemos muchas visitas, vamos a “afectar” al resto de nuestros vecinos.

Los servidores compartidos son los que muchos de nosotros utilizamos. Los privados generalmente se ocupan en sitios grandes y que tienen miles de visitas por día.

El problema que surge acá es el siguiente: a cada computador (servidor en este caso) conectado a internet recibe una dirección IP única. Supuestamente si ponemos como URL esa dirección IP vamos a poder ver nuestro sitio. Pero ¿que pasa cuando un servidor es compartido?… bueno, en ese caso no se puede acceder a él por IP porque el servidor no sabe cual de los sitios que tiene alojado debe mostrar. Por ejemplo, el servidor donde tengo alojado este sitio es compartido, y si intentan acceder por IP (este link se abre en una ventana nueva) verán que sale un error.

En los casos en que el servidor es compartido, el sistema funciona de otra manera. El servidor es configurado para que lea la URL a través de la cual se accede. Si la URL que están solicitando es http://www.sebastianbarria.com, el servidor va a mostrar el contenido alojado en una cuenta (carpeta) específica. Si la URL es otra, va a mostrar el contenido de otra carpeta y así. El dominio APUNTA al servidor (llama internamente a la IP que le dijimos) y el servidor entonces discrimina que archivos mostrar o donde almacenar la información de correos correspondiente.

Cabe destacar que un servidor no es más que un computador común y corriente. Talvez con un poco más de memoria o de velocidad, pero es básicamente eso. Un computador con algún sistema operativo específico instalado.

Tipos de dominios

Existen tres tipos de dominios que debemos manejar:

  1. El dominio principal (midominio.com)
  2. Los subdirectorios (midominio.com/blog, midominio.com/mail, etc.)
  3. Los subdominios (blog.midominio.com, mail.midominio.com, etc.)

El dominio principal es la base de todo. Es el que compré y que ahora está asociado a mi servidor.

Los subdirectorios son reflejo de la raíz de mi dominio. Si en mi dominio hay una carpeta que se llama “carpeta”, entonces automáticamente va a ser accesible a través de midominio.com/carpeta.

Y los subdominios son considerados como dominios independientes. Puedo tener un sitio en un dominio y otro completamente distinto en un subdominio de él. Esto se debe configurar a nivel de servidor y en el fondo se asigna una carpeta específica a la que debe apuntar cada subdominio. También se puede configurar para que un subdominio apunte a la carpeta raíz y de esa manera si ingreso desde el dominio o subdominio, pueda ver el mismo sitio, como es el caso de midominio.com (sin “www”) y www.midominio.com (con “www”).

Hay sitios que están mal configurados a nivel de servidor y en los que si ingreso el dominio con www veo algo y sin www veo el correo o simplemente una página de error. Este es un error importantísimo de corregir pues hace perder toda la credibilidad del sitio en cuestión.

Como consejo, siempre es bueno configurar una de las dos alternativas (con “www” y sin “www”) para que sea la principal y que la otra apunte a ella. Esto se puede hacer a través de servidor o desde el archivo .htaccess (tema para otro artículo).

Bueno, creo que con eso basta por ahora… al parecer es mucha información junta… Ojalá les sirva para aclarar algunas dudas al respecto.

:)

6 Comments Comments Feed

  1. yamid (22/04/2010, 20:37). Reply

    Excelente articulo Sebastian, justo lo que necesitaba para ahorrarme mas de una explicacion. Gracias!

    • Sebastian Barria (22/04/2010, 22:29). Reply

      Claro, esa era la idea… ahora cuando te pregunten solo les das la URL :)

  2. 213 (22/11/2010, 14:46). Reply

    es la información mas aburrida

    • bit (15/07/2011, 16:24). Reply

      y si es aburrida, para que lo lees?

      Muchas gracias a mi si me sirvio bastante.

  3. santiago (21/11/2011, 04:52). Reply

    En que me puedo estar equivocando si: a) ya veo el servidor por mi ip publica. b) mi cuenta en no-ip identifica mi ip. c) al realizar un dig en nombre de mi dominio apunta a una ip diferente.

    • Sebastian Barria (21/11/2011, 10:46). Reply

      Ojo que la IP pública es una cosa y la IP de los DNS es otra… talvez estás utilizando la IP de los DNS o algo así.
      Si tu puedes ver tu sitio por IP, deberías usar esa misma IP para ponérsela a algún sistema como no-ip.com.
      Lo que puedes hacer para probar es modificar tu archivo hosts (en windows c:/windows/system32/drivers/etc) agregando una linea que diga “LA.IP.DE.TU.SITIO http://www.tusitio.com” y luego te metes desde cualquier navegador a http://www.tusitio.com” para ver si está funcionando efectivamente.

Add a Comment

Suscribirme a los siguientes comentarios vía email (también puedes suscribirte sin comentar.

Switch to our mobile site