En informática, un Identificador Uniforme de Recursos es algo que se utiliza para nombrar algo en Internet. Los URI son similares a las URL, porque son el nombre de algo.
Algunos ejemplos de URIs son:
- https://example.org/absolute/URI/with/absolute/path/to/resource.txt
- ftp://example.org/resource.txt
issn1535-3613 mailto:[email protected]
¿Qué es un URI?
Un URI (Identificador Uniforme de Recursos) es una cadena de caracteres que identifica de forma única un recurso en la red o en un espacio de nombres. Un URI puede servir para identificar, localizar o nombrar un recurso. No todos los URIs indican cómo obtener el recurso (eso lo hacen las URL), pero todos son nombres que permiten referirse de forma inequívoca a algo.
Partes de un URI
Un URI suele estar compuesto por varias partes, aunque no todas aparecen en todos los URIs:
- Esquema (scheme): indica el tipo de identificador, por ejemplo http, https, ftp, mailto, urn.
- Autoridad (authority): incluye normalmente el nombre del host y, opcionalmente, puerto y credenciales (ej.: example.org o example.org:8080).
- Ruta (path): la ubicación jerárquica del recurso dentro del servidor (ej.: /absolute/URI/with/absolute/path/to/resource.txt).
- Consulta (query): parte opcional que sigue a ? y contiene parámetros (ej.: ?q=buscar&lang=es).
- Fragmento (fragment): parte opcional tras # que se usa para referirse a una subparte del recurso (no se envía al servidor al hacer la petición HTTP).
Ejemplo práctico usando uno de los URIs listados: https://example.org/absolute/URI/with/absolute/path/to/resource.txt
- Esquema: https
- Autoridad: example.org
- Ruta: /absolute/URI/with/absolute/path/to/resource.txt
Diferencia entre URI, URL y URN
- URI es el término genérico que engloba cualquier identificador uniforme de recursos.
- URL (Localizador Uniforme de Recursos) es un tipo de URI que, además de nombrar, especifica cómo localizar o acceder al recurso (por ejemplo, usando un protocolo como HTTP o FTP).
- URN (Nombre Uniforme de Recursos) es otro tipo de URI que pretende ofrecer un nombre persistente e independiente de su localización (ej.: urn:isbn:0451450523 para identificar un libro por su ISBN).
Esquemas comunes y ejemplos
- http/https: acceso web. Ej.: https://example.org/
- ftp: transferencia de archivos. Ej.: ftp://example.org/resource.txt
- mailto: dirección de correo. Ej.: mailto:[email protected]
- file: archivo local. Ej.: file:///C:/ruta/al/archivo.txt
- data: datos embebidos en la propia URI. Ej.: data:text/plain;base64,SGVsbG8=
- urn: nombres persistentes. Ej.: urn:ietf:rfc:2141
Resolución y otras consideraciones técnicas
- No todos los URIs son dereferenceable (es decir, que se pueda obtener un recurso directamente a partir de ellos); los que lo son suelen ser URLs.
- Algunos esquemas usan mecanismos de resolución propios (por ejemplo, DNS + HTTP para http/https; registros o directorios para ciertos URN).
- Los caracteres no permitidos en un URI deben codificarse mediante percent-encoding (%XX). Para soportar caracteres Unicode se usan IRIs (Internationalized Resource Identifiers) que se convierten a URIs usando UTF-8 y percent-encoding.
- El fragmento (parte tras #) se interpreta localmente en el cliente y no forma parte de la petición que llega al servidor.
Buenas prácticas
- Usar esquemas apropiados según la función (ej.: mailto para correos, https para recursos web).
- Preferir URIs estables y persistentes cuando se necesite referencia a largo plazo.
- Evitar cambiar URIs públicamente accesibles; si es necesario, proporcionar redirecciones y documentar versiones.
- Normalizar y escapar correctamente caracteres especiales para evitar ambigüedades.
- Cuando sea posible, preferir HTTPS para proteger la integridad y privacidad al acceder a recursos.
En resumen, un URI es la forma normalizada de nombrar recursos en la web y en otros espacios de nombres. Entender su estructura y tipos (URL, URN) ayuda a diseñar enlaces y sistemas de identificación fiables y duraderos.