URI: ¿qué es el identificador de recursos uniforme?
Casi todo el mundo ha oído hablar del URL, la dirección que utilizamos para acceder a las páginas web por Internet. Sin embargo, pocas personas saben qué es el URI. La idea de un identificador uniforme de recursos fue concebida por Tim Berners-Lee, el padre de la World Wide Web. Cuando el científico utilizó el término por primera vez en la RFC 1630, aún hablaba de un universal resource identifier, o identificador universal de recursos. Desde entonces, sobre todo debido a su uso en algunas publicaciones del World Wide Web Consortium (W3C), las siglas URI empezaron a referirse a uniform resource identifier, y así es como las entendemos hoy en día. Su estructura, no obstante, no ha cambiado en absoluto desde su creación.
¿Qué es el uniform resource identifier?
El URI (siglas de uniform resource identifier) o identificador uniforme de recursos (por su nombre en español) sirve para acceder a un recurso físico o abstracto por Internet. Dependiendo de la situación, el recurso puede ser de muchos tipos: por ejemplo, un URI puede identificar tanto una página web como al remitente o al destinatario de un correo electrónico. Las aplicaciones utilizan este identificador único para interactuar con el recurso o consultar información sobre el mismo.
Protocolos como HTTP o FTP funcionan gracias a esta sintaxis, ya que la forma de direccionamiento se establece en base a la estructura del URI. De este modo, el sistema identifica a qué información debe acceder, así como dónde y cómo.
La sintaxis del URI
Un URI consta de un máximo de cinco partes, de las cuales solo dos son obligatorias:
- scheme (esquema): proporciona información sobre el protocolo utilizado.
- authority (autoridad): identifica el dominio.
- path (ruta): muestra la ruta exacta al recurso.
- query (consulta): representa la acción de consulta.
- fragment (fragmento): designa una parte del recurso principal.
Los dos elementos imprescindibles que deben contener todos los identificadores son scheme y path. En la estructura del URI, los componentes se enumeran uno tras otro por este orden y están separados por caracteres estándar.
scheme :// authority path ? query # fragment
Las dos barras después de los primeros dos puntos solo son necesarias si hay contenido en la parte de authority. Asimismo, authority puede contener información del usuario, que se separa del dominio mediante el signo de @, e incluir una especificación de puerto al final, que se separa a su vez del dominio mediante dos puntos.
Como ejemplo podemos poner una dirección web común: "https://example.org/test/test1?search=test-question#part2"
- scheme: https
- authority: example.org
- path: test/test1
- query: search=test-question
- fragment: part2
En el ejemplo, el URI direcciona a una parte de una página web (part2), a la que se accede mediante HTTP. Dicha parte se sitúa en un dispositivo con el identificador “example.org” y puede encontrarse siguiendo la ruta indicada si antes se realiza la búsqueda.
También se puede utilizar el URI para acceder a una dirección de correo electrónico, que presenta la siguiente estructura: "mailto:user@example.org".
- scheme: mailto
- path: user@example.org
En este caso, el URI solo incluye los dos componentes obligatorios. Otros posibles recursos a los que se puede acceder con esta sintaxis son, por ejemplo, archivos o incluso números de teléfono.
Aunque el path es obligatorio en todos los URI, su contenido puede estar vacío. De este modo, “http://example.org/” sería un URI válido con una ruta vacía.
La IANA es la entidad que se encarga de coordinar los esquemas de los URI, es decir, la primera parte de todos los enlaces. También cabe la posibilidad de utilizar schemes personalizados, aunque los establecidos por esta organización son ampliamente utilizados en todo Internet. Estos son los más conocidos:
- about: información del navegador
- data: datos incrustados
- feed: canales web
- file: archivos
- ftp: file transfer protocol
- git: control de versiones con Git
- http: hypertext transfer protocol
- https: hypertext Transfer Protocol Secure
- imap: internet message access protocol
- mailto: direcciones de correo electrónico
- news: grupos de noticias de Usenet
- pop: POP3
- rsync: sincronización de datos
- sftp: SSH file transfer protocol
- ssh: Secure Shell
- tel: números de teléfono
- urn: uniform resource name
Puedes consultar el listado oficial con todos los esquemas de URI habituales publicado por la IANA.
URI relativo y absoluto
Para no tener que escribir (y guardar) toda la información que contienen los URI, algunas aplicaciones utilizan una versión reducida de la sintaxis, que no incluye todos los elementos. Distinguimos, por lo tanto, entre el URI absoluto, que es independiente del contexto y consta al menos de los elementos scheme, authority y path, y el URI relativo, es decir, una forma más breve que prescinde de algunas partes y que solo se une al URI de base para completarlo. Como esta versión solo se anexiona, es imprescindible contar con un URI de base completo que permita interpretarla correctamente. Obviamente, el URI relativo debe encontrarse en la misma estructura de directorio que el URI de base para ser válido.
Como el URI relativo prescinde del scheme, para poder distinguirlo del URI absoluto, no puede haber dos puntos en el primer segmento de la ruta, porque, en este caso, la parte que precede a los dos puntos se interpretaría como scheme. Existen tres tipos de URI relativos, que se identifican con un marcador al comienzo de la ruta:
- Enlace relativo, que comienza sin barra.
- Enlace absoluto, que comienza con una barra.
- Enlace de red, que comienza con dos barras.
URI vs. URL vs. URN
Las siglas URI, URL y URN suelen confundirse, porque, aparte de sonar muy parecidas, se refieren a tres conceptos muy similares en términos técnicos. El URL o uniform resource locator se utiliza para indicar dónde se encuentra un recurso. Por lo tanto, también sirve para acceder a algunas páginas web por Internet. Por el contrario, el URN o uniform resource name es independiente de la ubicación y designa un recurso de forma permanente. Por lo tanto, si el URL se conoce principalmente como una forma de identificar un dominio web, el URN también puede tratarse de un ISBN que identifique un libro de manera indefinida.
El URL y el URN presentan la misma sintaxis que el URI. Ambos tipos de identificadores son, por lo tanto, subcategorías del URI. Los URL y URN son un tipo de URI. Del mismo modo, ni URL ni URN son identificadores uniformes recursos.