Desde los inicios de la World Wide Web (abreviado, la web), Internet ofrece un concepto uniforme con el que se pueden ide­n­ti­fi­car recursos en la red de forma unívoca, esto es el URL. El Uniform Resource Locator, un estándar RFC del año 1994, ofrece a los usuarios de Internet una sintaxis universal con la que se pueden localizar co­n­te­ni­dos públicos y acceder a ellos en función de las ne­ce­si­da­des. Por ello, el URL, al que los in­te­r­nau­tas recurren a diario para acceder a recursos con el navegador, pertenece a las te­c­no­lo­gías básicas de la web. No obstante, el estándar no se limita al di­re­c­cio­na­mie­n­to de páginas web.

A co­n­ti­nua­ción te pre­se­n­ta­mos cómo se de­sa­rro­llan los URL y cuáles son sus pri­n­ci­pa­les ámbitos de apli­ca­ción.

¿Qué es un URL?

La abre­via­tu­ra URL deriva de Uniform Resource Locator (lo­ca­li­za­dor de recursos uniforme). Se trata de un subtipo del llamado Uniform Resource Ide­n­ti­fier (URI, ide­n­ti­fi­ca­dor de recursos uniforme) a cuya sintaxis se ajusta su propia co­n­s­tru­c­ción.

Los ide­n­ti­fi­ca­do­res permiten localizar recursos mediante una ide­n­ti­fi­ca­ción única tanto a nivel local como en todo Internet. Como subtipo del URI hoy los URL se utilizan como sinónimo de “dirección de Internet”. Esto se debe al ámbito de apli­ca­ción principal del Uniform Resource Locator, es decir, el di­re­c­cio­na­mie­n­to de páginas web. Sin embargo, los URL no se limitan a esta función, sino que también permiten localizar archivos en el sistema de archivos central. Esto confirma que toda dirección de Internet es un URL, pero no todo URL es una dirección de Internet.

De­fi­ni­ción

La abre­via­tu­ra URL hace re­fe­re­n­cia a Uniform Resource Locator. Los lo­ca­li­za­do­res de recursos uniformes permiten dirigir recursos de manera ine­quí­vo­ca y co­n­su­l­tar­los en caso necesario. Así, los usuarios de Internet, por ejemplo, insertan URL en el navegador para visitar páginas web a través de la barra de di­re­c­cio­nes o para descargar archivos.

La es­tru­c­tu­ra de los URL

Por de­fi­ni­ción, todo URL está formado por el de­no­mi­na­do esquema y por una parte es­pe­cí­fi­ca del esquema.

  • Esquema: el esquema del Uniform Resource Locator indica tanto el tipo de recurso como el método de acceso y contiene la in­fo­r­ma­ción sobre cómo se tiene que acceder a los recursos. A menudo, el esquema del URL tiene el mismo nombre que el protocolo para el método de acceso en las capas de apli­ca­ción de Internet. Los esquemas más ha­bi­tua­les son http/https, mailto, file o ftp.
  • Parte es­pe­cí­fi­ca del esquema: en función del tipo de esquema, la parte es­pe­cí­fi­ca del esquema contiene una serie de segmentos que incluyen la ubicación de los recursos co­rre­s­po­n­die­n­tes y pa­rá­me­tros de pro­ce­sa­mie­n­to op­cio­na­les.

Los dos puntos aparecen como separador entre el esquema y la parte es­pe­cí­fi­ca de este. De­pe­n­die­n­do del esquema, también es posible que sean ne­ce­sa­rias dos barras basadas en una co­n­ve­n­ción que tiene sus orígenes en los comienzos de la web y que en la ac­tua­li­dad no tiene ninguna función pa­r­ti­cu­lar.

Todo URL se basa en la siguiente sintaxis URI:

Schema:[//[user[:password]@]host[:port]][/path][?query][#fragment]

A cada segmento de la parte es­pe­cí­fi­ca le co­rre­s­po­n­de una función de­te­r­mi­na­da. Los segmentos user, passwort, host y port se denominanauthority” (autoridad), que indica el ordenador en el que se puede encontrar un recurso y el espacio de nombres que se le puede atribuir.

  • user y password: los segmentos user y password contienen el nombre de usuario y la co­n­tra­se­ña de una persona au­to­ri­za­da para acceder al recurso y están separados por dos puntos. Ambos datos son ne­ce­sa­rios úni­ca­me­n­te si el recurso exige una au­te­n­ti­ca­ción. El nombre de usuario y la co­n­tra­se­ña se separan del segmento host del URI mediante el símbolo @.
  • host: el segmento host del URI comprende ge­ne­ra­l­me­n­te un dominio que incluye un dominio de nivel superior, de segundo o de tercer nivel, y señala un de­te­r­mi­na­do ordenador (host) desde el que se tiene que acceder al recurso deseado. Como al­te­r­na­ti­va, el nombre del ordenador se muestra en forma de dirección IP.  
  • port: es posible acceder a un de­te­r­mi­na­do puerto TCP/IP en la red, indicando el número de puerto. Dado que la mayoría de esquemas ya cuentan con un puerto estándar, es opcional recurrir a una entrada por separado. Algunos puertos estándar son 80 en HTTP, 443 en HTTPS o 21 en FTP. Se debe es­pe­ci­fi­car el número de puerto cuando no se haya definido un puerto general o no se deba utilizar un puerto estándar para las tra­n­s­mi­sio­nes es­tá­n­da­res. El número de puerto se separa del host con dos puntos.

El dominio se indica en la authority de forma legible para las personas. Por el contrario, los or­de­na­do­res trabajan con di­re­c­cio­nes IP. El acceso a un recurso web requiere un paso in­te­r­me­dio que tra­n­s­cu­rre en un segundo plano y de manera im­pe­r­ce­p­ti­ble para el usuario: la re­so­lu­ción de nombres basada en el sistema de nombres de dominio (DNS).

Nota

DNS hace re­fe­re­n­cia a un servicio en redes basadas en di­re­c­cio­nes IP al que se le en­co­mie­n­da la re­so­lu­ción de nombres de dominio en di­re­c­cio­nes IP o de di­re­c­cio­nes IP en dominios. Para ello, los pro­vee­do­res de servicios de Internet disponen los de­no­mi­na­dos se­r­vi­do­res DNS. Si un usuario de Internet busca una página web, su router remite la consulta al servidor DNS al cargo, que busca la dirección IP del dominio so­li­ci­ta­do y la devuelve como respuesta. Una vez el router recibe la dirección IP so­li­ci­ta­da, se puede di­re­c­cio­nar al servidor web co­rre­s­po­n­die­n­te.

A la authority del URI le sigue in­fo­r­ma­ción sobre la lo­ca­li­za­ción del recurso en el ordenador, además de los co­m­po­ne­n­tes op­cio­na­les query string y los ide­n­ti­fi­ca­do­res de fra­g­me­n­tos.

  • path: el segmento URI path contiene la ruta de archivo para el recurso y remite a la ubicación del mismo en el archivo de destino. La ruta de archivo empieza con una barra inclinada (/).
  • query: algunos recursos web contienen elementos eje­cu­ta­bles y esperan, además de una ruta de archivo, al llamado query string (cadena de consulta). Este contiene pa­rá­me­tros (por ejemplo, entradas de usuario) que se entregan junto con el URL y se procesan del lado del servidor. Esto es habitual en las páginas web dinámicas, que se crean cuando se accede a los conjuntos de datos de una base de datos. El query string se inicia con un símbolo de in­te­rro­ga­ción (?).
  • fragment: si se quiere hacer re­fe­re­n­cia a una posición es­pe­cí­fi­ca en un recurso, el URI termina con un ide­n­ti­fi­ca­dor de fragmento. Este se añade por separado con la al­moha­di­lla (#) y remite, por lo general, a una etiqueta de salto designada de forma ine­quí­vo­ca con un ide­n­ti­fi­ca­dor (ID) en un documento HTML como, por ejemplo, en un epígrafe.

La de­te­r­mi­na­ción de los elementos de la sintaxis URI que contiene un URL depende del esquema co­rre­s­po­n­die­n­te y la es­tru­c­tu­ra del URL está de­te­r­mi­na­da por el tipo de recurso. La lista siguiente recoge los tipos de URL más comunes:   

http

El acceso a las páginas web tiene lugar a través de los pro­to­co­los HTTP (Hypertext Transfer Protocol) o HTTPS (Hypertext Transfer Protocol over SSL). En el caso de este último, los datos se tra­n­s­mi­ten a través de una conexión segura. La es­tru­c­tu­ra del URL es la misma en ambos pro­to­co­los.

Para solicitar un URL no se necesita, por lo general, ninguna au­te­n­ti­ca­ción. La autoridad (authority) incluye el dominio bajo el que puede consultar la página web deseada, pero no el nombre de usuario ni la co­n­tra­se­ña.

mailto

En el caso de mailto se trata de un esquema URL para di­re­c­cio­nes de correo ele­c­tró­ni­co que permite a los gestores de páginas web im­ple­me­n­tar hi­pe­re­n­la­ces para es­ta­ble­cer contacto. Si un usuario de Internet hace clic sobre un enlace de mailto, todos los na­ve­ga­do­res abren au­to­má­ti­ca­me­n­te el programa de correo ele­c­tró­ni­co pre­de­te­r­mi­na­do del sistema y una nueva ventana de correo, donde la dirección de email que aparece en la parte es­pe­cí­fi­ca del esquema se introduce como dirección del de­s­ti­na­ta­rio. De este modo, el usuario no tiene que iniciar el programa por su cuenta y escribir la dirección de correo ma­nua­l­me­n­te.

En los URL con el esquema mailto se es­pe­ci­fi­ca la dirección de email del de­s­ti­na­ta­rio en la parte es­pe­cí­fi­ca del esquema, y tanto esta como el esquema se separan por medio de dos puntos, por lo que se omite la barra doble. A través del query string se pueden co­n­fi­gu­rar las cabeceras de los correos para, por ejemplo, tra­n­s­fe­rir valores pre­de­te­r­mi­na­dos para el asunto y el texto del correo ele­c­tró­ni­co.

file

El esquema file se utiliza para acceder a archivos es­pe­cí­fi­cos en el ordenador. Si se introduce la ruta de archivo correcta como URL en la barra de di­re­c­cio­nes del navegador web, esta solicita el di­re­c­to­rio deseado o un archivo de destino.

Dado que el esquema file remite a un recurso local, se omite la in­fo­r­ma­ción de la authority. La ruta de archivo comienza con una barra inclinada y, como resultado, se da un URL con tres barras sucesivas.

ftp

Los lo­ca­li­za­do­res de recursos uniformes con el esquema FTP (File Transfer Protocol) permiten acceder a los archivos de otro ordenador (acceso remoto). Para la tra­n­s­mi­sión se utiliza el protocolo de tra­n­s­fe­re­n­cia de archivos homónimo, es decir, FTP.

Los usuarios que deseen acceder a archivos en un sistema operativo remoto vía FTP deben, ge­ne­ra­l­me­n­te, au­te­n­ti­fi­car­se. Los URL que hacen re­fe­re­n­cia a recursos FTP suelen contener datos de acceso (usuario y co­n­tra­se­ña).

Ca­ra­c­te­res pe­r­mi­ti­dos en los URL

El estándar URL solo admite un conjunto limitado de ca­ra­c­te­res ASCII (American Code for In­fo­r­ma­tion In­te­r­cha­n­ge). A esto hay que añadir que algunos ca­ra­c­te­res ya están re­se­r­va­dos para de­te­r­mi­na­das funciones como, por ejemplo, la ide­n­ti­fi­ca­ción de segmentos in­di­vi­dua­les, pe­r­mi­tie­n­do así desglosar y procesar el URL. 

A los si­guie­n­tes ca­ra­c­te­res se les asigna una función cla­ra­me­n­te definida en el estándar URL:

: / ? # [ ] @ $ & ' ( ) * + , ; =

El signo de in­te­rro­ga­ción (?) inicia un query string. Los diversos pa­rá­me­tros en esta cadena de consulta se separan con el símbolo et (&). Por otro lado, el signo de igualdad (=) hace de separador entre el nombre del parámetro y el valor. La al­moha­di­lla (#) inicia la etiqueta de salto.

Las letras, los números y los si­guie­n­tes ca­ra­c­te­res es­pe­cia­les forman parte de los ca­ra­c­te­res sin una función pre­de­fi­ni­da:

A-Z, a-z
0-9
- . _ ~

Otros ca­ra­c­te­res di­fe­re­n­tes a los ca­ra­c­te­res ASCII listados, así como los que no se engloban bajo la de­no­mi­na­ción ASCII, no pueden uti­li­zar­se en los URL y tienen que re­es­cri­bi­r­se. También es posible re­es­cri­bir uno de los ca­ra­c­te­res re­se­r­va­dos para evitar que se in­te­r­pre­te según su si­g­ni­fi­ca­do pre­de­fi­ni­do. Para convertir ca­ra­c­te­res ASCII, el estándar URL recurre al carácter de en­ma­s­ca­ra­mie­n­to % (tanto por ciento) y a la tabla de valores de ASCII en notación he­xa­de­ci­mal. Los que no son ca­ra­c­te­res ASCII se co­n­vie­r­ten uti­li­za­n­do la re­pre­se­n­ta­ción po­r­ce­n­tual. El RFC 3986 re­co­mie­n­da una co­di­fi­ca­ción co­m­pa­ti­ble con ASCII basada en UTF-8, aunque dicha re­co­me­n­da­ción no es vi­n­cu­la­n­te. Por último, la decisión de qué co­di­fi­ca­ción debe uti­li­zar­se recae sobre el proveedor del servicio co­rre­s­po­n­die­n­te. Un carácter especial como “é” se re­pre­se­n­ta­ría como %E9 (Latin-1) o %C3%A9 (UTF-8). Por el contrario, los ca­ra­c­te­res es­pe­cia­les de los dominios se co­n­vie­r­ten con ayuda de Punycode en se­cue­n­cias de ca­ra­c­te­res co­m­pa­ti­bles con ASCII. Puedes encontrar más in­fo­r­ma­ción sobre la co­di­fi­ca­ción vía Punycode en nuestro artículo sobre los nombres de dominio in­te­r­na­cio­na­les (IDN).

Consejo

En la página web del asesor de diseño web Eric A. Meyer puedes encontrar un co­di­fi­ca­dor de URL  gratuito.

La di­fe­re­n­cia entre URL absolutos y relativos

Los lo­ca­li­za­do­res de recursos uniformes se utilizan como URL absolutos o como relativos. Los absolutos son válidos a nivel universal y co­m­pre­n­den todos los segmentos ne­ce­sa­rios para el esquema co­rre­s­po­n­die­n­te. Los relativos, por su parte, solo son válidos en un contexto es­pe­cí­fi­co y heredan ciertas ca­ra­c­te­rí­s­ti­cas de este, de modo que los segmentos de URL co­rre­s­po­n­die­n­tes se vuelven re­du­n­da­n­tes y pueden omitirse. Entre los datos que surgen del contexto se incluyen, por ejemplo, el protocolo, los dominios o también la ruta hacia el recurso.

Los URL relativos se utilizan, entre otros, en los hi­pe­re­n­la­ces de las páginas web para enlazar di­fe­re­n­tes su­b­pá­gi­nas de una página web. El Uniform Resource Locator del enlace hereda los datos de la página web en la que utiliza.

Los si­guie­n­tes ejemplos muestran un enlace de "www.example.org/index/pagina1" a "www.example.org/index/pagina2" con un URL absoluto y otro relativo.

Hi­pe­re­n­la­ce con un URL absoluto:

<a href="http://www.example.org/index/pagina2">Linktext</a>

Hi­pe­re­n­la­ce con un URL relativo:

<a href="/index/pagina2">Linktext</a>

Los URL relativos ofrecen la ventaja de ser no­to­ria­me­n­te más cortos y de co­n­tri­buir a un código fuente más ligero y claro. Además, los hi­pe­re­n­la­ces con URL relativos si­m­pli­fi­can el traslado de los dominios. Si se modifica el dominio de la página web, este debe in­te­r­ca­m­biar­se ma­nua­l­me­n­te en cada enlace interno por un URL absoluto o ser re­di­ri­gi­do por medio de re­di­re­c­cio­nes. Este esfuerzo es in­ne­ce­sa­rio en el caso de los URL relativos, que no requieren una autoridad y, por tanto, tampoco una es­pe­ci­fi­ca­ción de dominio.

Ir al menú principal