URIs y URLs

La web puede ser concebida como un gran grupo de recursos ubicados en diferentes computadoras alrededor del mundo. Para hacer referencias y encontrar estos recursos, la web depende de URI, un sistema que ha sido diseñado para nombrar y localizar los recursos de la web de manera unívoca. La estructura genérica de un URI se describe a continuación:

[protocolo][nombre_computadora][ruta_directorios][archivo]

  • Protocolo: también llamado esquema URL, este componente especifica el protocolo que se requiere utilizar para acceder al documento o recurso.
  • Nombre de la computadora: el nombre de la computadora (habitualmente un nombre de dominio o una dirección IP) donde el contenido está alojado.
  • Ruta de directorios: una secuencia de directorios separados por barras que define la ruta a seguir en la computadora para llegar al archivo.
  • Archivo: El nombre del archivo que contiene al recurso.

El siguiente ejemplo muestra un URI con todas sus partes etiquetadas.

http://Protocolwww.htmlquick.comComputer name/reference/tags/Directoriesa.htmlFile

Sin embargo, no es requerida la utilización de todas estas componentes para conformar un URI válido. Muchos URIs pueden tener sólo algunas de estas partes presentes (o ninguna) y aún ser válidas. La siguiente lista muestra algunos ejemplos de URIs válidos.

  • 195.156.123.1Nombre de la computadora/backup/Directorios (sin protocolo; sin archivo)
  • http://Protocoloyeahyeah.comNombre de la computadora/ (sin directorios; sin archivo)
  • /john/trabajo/Directoriosreporte.odtArchivo (sin protocolo; sin nombre de la computadora)
  • index.htmlArchivo (sin protocolo; sin nombre de computadora; sin directorios)
  • / (sin protocolo; sin nombre de computadora; sin directorios; sin archivo)

Un URL es un tipo particular de URI que siempre incluye información acerca de cómo acceder al recurso identificado. En la práctica, esta información está compuesta por el protocolo y, en lo que respecta a su uso en la web, el nombre de la computadora. La siguiente lista muestra ejemplos de URLs.

  • ftp://Protocoloalgunservidor.comNombre de la computadora/algun-recurso.phpArchivo (sin directorios)
  • http://Protocolowww.w3.orgNombre de la computadora/TR/CSS21/Directorios (sin archivo)
  • telnet://Protocolo127.15.19.11Nombre de la computadora/ (dirección IP)

URIs relativas

Un URI relativo es un URI que no provee el protocolo utilizado para acceder al recurso ni el nombre de la computadora en la que está alojado, por lo que sólo puede ser utilizado para referirse a otro documento en la misma computadora. La información que éste presenta debe ser considerada como una ruta relativa a la ubicación del documento que contiene el URI o, en otras palabras, instrucciones para ir desde este documento al recurso de destino.

Los navegadores a cargo del procesamiento del documento, contruyen un nuevo URI completo, usando el URI relativo en conjunto con el URI base, desplazándose en la estructura de directorios desde la ubicación del documento originario al recurso de destino. Esta idea será mejor explicada con el siguiente ejemplo.

Un documento ubicado en "http://www.servidordeejemplo.com/documentos/index.html" tiene un vínculo con el siguiente URI relativo: "2015/calentamiento-global.pdf". Cuando un navegador tenga que resolver este URI relativo, primero extraerá el URI base de la ubicación del documento originario, eliminando la parte del archivo. En este caso, la URI base sería "http://www.servidorejemplo.com/documentos/". A partir de allí, el navegador puede, en este caso particular, simplemente anexar la URI relativa a la URI base, obteniendo la direción absoluta del recurso, que en este caso sería "http://www.servidorejemplo.com/documentos/2015/calentamiento-global.pdf".

En algunos casos, el URI relativo puede tener el directorio especial "..", el cual instruye a los navegadores a moverse un nivel hacia arriba en la estructura de directorios. Por ejemplo, si el documento usado en el ejemplo anterior, ubicado en "http://www.servidorejemplo.com/documentos/index.html", presenta un vínculo con el URI relativo "../imagenes/tierra.jpg", el navegador a cargo de su procesamiento extraería el URI base del documento originario ("http://www.servidorejemplo.com/documentos/"), se movería un nivel hacia arriba en la estructura de directorios ("http://www.exampleserver.com/") y luego anexaría el resto del URI relativo. Al final, el URI obtenido sería "http://www.servidorejemplo.com/imagenes/tierra.jpg".

Para mayor información acerca del entrelazado de recursos en sitios web, recurre al tutorial "Organizando un sitio web".

Identificadores de fragmentos

Un URI que apunta a un recurso puede también contener información acerca de la ubicación de una parte o fragmento en ese recurso. Esta información es conocida como identificador de fragmento.

En HTML, un URI puede ser usado para ubicar una sección específica del documento, utilizando el valor del atributo id del elemento al que se desea apuntar como identificador de fragmento. Por ejemplo, la sección anterior a esta, denominada "URIs relativas", tiene el valor "relative-uris" en su atributo id. Se puede crear un vínculo que apunte específicamente a esa sección, anexando a la URI de este documento el símbolo ("#") y el valor de su atributo id (http://www.htmlquick.com/reference/uri-url.html#relative-uris).

Los navegadores habitulamente se desplazan hasta la sección especificada, cuando un vínculo con un identificador de fragmento es activado. Puedes probar esta funcionalidad siguiendo este vínculo que apunta a la sección de URIs relativas en este mismo documento.