Un identificador de recursos uniforme o URI —del inglés uniform resource identifier— es una cadena de caracteres que identifica los recursos –físicos o abstractos– de una red de forma unívoca. La diferencia respecto a un localizador de recursos uniforme (URL) es que estos últimos hacen referencia a recursos que, de forma general, pueden variar en el tiempo.[1]
Normalmente estos recursos son accesibles en una red o sistema. Los URI pueden ser localizadores de recursos uniformes (URL), nombres de recursos uniformes (URN), o ambos.
Un URI consta de las siguientes partes:
Esquema: nombre que se refiere a una especificación para asignar los identificadores, e.g. urn:, tag:, cid:. En algunos casos también identifica el protocolo de acceso al recurso, por ejemplo http:, mailto:, ftp:, etc.
Autoridad: elemento jerárquico que identifica la autoridad de nombres (por ejemplo //www.example.com).
Ruta: Información usualmente organizada en forma jerárquica, que identifica al recurso en el ámbito del esquema URI y la autoridad de nombres (e.g. /domains/example).
Consulta: Información con estructura no jerárquica (usualmente pares "clave=valor") que identifica al recurso en el ámbito del esquema URI y la autoridad de nombres. El comienzo de este componente se indica mediante el carácter '?'.
Fragmento: Permite identificar una parte del recurso principal, o vista de una representación del mismo. El comienzo de este componente se indica mediante el carácter '#'.
Aunque se acostumbra a llamar URL a todas las direcciones web, URI es un identificador más completo
y por eso está recomendado su uso en lugar de la expresión URL.
Un URI se diferencia de un URL en que permite incluir en la dirección una subdirección, determinada por el “fragmento”.
Cuando la autoridad se divide en forma de usuario, anfitrión y puerto, esta se puede representar mediante el siguiente diagrama sintáctico: