La gente habla de URL , URI y URN como si fueran cosas diferentes, pero se ven igual a simple vista.
¿Cuáles son las diferencias distinguibles entre ellos?
( URIs ( URLs ) )
La gente habla de URL , URI y URN como si fueran cosas diferentes, pero se ven igual a simple vista.
¿Cuáles son las diferencias distinguibles entre ellos?
( URIs ( URLs ) )
Respuestas:
Desde RFC 3986 :
Un URI puede clasificarse además como un localizador, un nombre o ambos. El término "Localizador uniforme de recursos" (URL) se refiere al subconjunto de URI que, además de identificar un recurso, proporciona un medio para localizar el recurso describiendo su mecanismo de acceso primario (por ejemplo, su "ubicación" de red). El término "Nombre de recurso uniforme" (URN) se ha utilizado históricamente para referirse a ambos URI bajo el esquema de "urna" [RFC2141] , que deben permanecer únicos y persistentes a nivel mundial incluso cuando el recurso deja de existir o deja de estar disponible, y a cualquier otro URI con las propiedades de un nombre.
Por lo tanto, todas las URL son URI (en realidad no del todo, ver más abajo), y todas las URN son URI, pero las URN y las URL son diferentes, por lo que no se puede decir que todas las URI son URL.
EDITAR: previamente pensé que todas las URL son URI válidas, pero según los comentarios:
No "todas las URL son URI". Depende de la interpretación de la RFC. Por ejemplo, en Java, al analizador de URI no le gusta
[
o,]
y eso se debe a que la especificación dice "no debería" y no "no".
De modo que eso enturbia aún más las aguas, desafortunadamente.
Si aún no ha leído la respuesta de Roger Pate , le aconsejo que también lo haga.
[
o, ]
y eso se debe a que la especificación dice "no debería" y no "no".
java.net.URI
documento en sí dice "cada URL es un URI, en términos abstractos, pero no todos los URI son una URL". Y java.net.URL
hace cosas extrañas como verificar la igualdad de las URL resolviendo nombres de host en direcciones IP (lo que parece estar en desacuerdo con RFC 3986 sec 6 en primer lugar, y rompe w hosts virtuales). Creo que esto solo significa que la Biblioteca estándar de Java tiene un comportamiento de clase inconsistente.
Identificación de URI y localización de URL ; sin embargo, los localizadores también son identificadores , por lo que cada URL también es un URI, pero hay URI que no son URL.
Este es mi nombre, que es un identificador. Es como un URI, pero no puede ser una URL, ya que no le dice nada sobre mi ubicación o cómo contactarme. En este caso, también se identifican al menos otras 5 personas solo en los EE. UU.
Este es un localizador, que es un identificador para esa ubicación física. Es como una URL y un URI (ya que todas las URL son URI), y también me identifica indirectamente como "residente de ...". En este caso, me identifica de manera única, pero eso cambiaría si consigo un compañero de cuarto.
Digo "me gusta" porque estos ejemplos no siguen la sintaxis requerida.
De Wikipedia :
En informática, un Localizador uniforme de recursos (URL) es un subconjunto del Identificador uniforme de recursos (URI) que especifica dónde está disponible un recurso identificado y el mecanismo para recuperarlo. En el uso popular y en muchos documentos técnicos y discusiones verbales, a menudo se usa incorrectamente como sinónimo de URI , ... [énfasis mío]
Debido a esta confusión común, muchos productos y documentación usan incorrectamente un término en lugar del otro, asignan su propia distinción o los usan como sinónimos.
Mi nombre, Roger Pate, podría ser como un URN (Nombre Uniforme de Recursos), excepto que están mucho más regulados y tienen la intención de ser únicos tanto en el espacio como en el tiempo.
Debido a que actualmente comparto este nombre con otras personas, no es globalmente único y no sería apropiado como URN. Sin embargo, incluso si ninguna otra familia usó este nombre, me nombraron en honor a mi abuelo paterno, por lo que aún no sería único en el tiempo. E incluso si ese no fuera el caso, la posibilidad de nombrar a mis descendientes después de mí hace que esto sea inadecuado como URN.
Los URN son diferentes de los URL en esta restricción de unicidad rígida, a pesar de que ambos comparten la sintaxis de los URI.
URNs are different from URLs in this rigid uniqueness constraint
¿Significa esto que las URL no identifican de forma exclusiva una ubicación?
Los URI son un estándar para identificar documentos usando una cadena corta de números, letras y símbolos. Están definidos por RFC 3986 - Identificador uniforme de recursos (URI): sintaxis genérica . Las URL, URN y URC son todos los tipos de URI.
Contiene información sobre cómo recuperar un recurso desde su ubicación. Por ejemplo:
http://example.com/mypage.html
ftp://example.com/download.zip
mailto:user@example.com
file:///home/user/file.txt
tel:1-888-555-5555
http://example.com/resource?foo=bar#fragment
/other/link.html
(Una URL relativa, solo útil en el contexto de otra URL)Las URL siempre comienzan con un protocolo ( http
) y generalmente contienen información como el nombre de host de la red ( example.com
) y, a menudo, una ruta de documento ( /foo/mypage.html
). Las URL pueden tener parámetros de consulta e identificadores de fragmentos.
Identifica un recurso por un nombre único y persistente, pero no necesariamente le dice cómo ubicarlo en Internet. Suele comenzar con el prefijourn:
Por ejemplo:
urn:isbn:0451450523
para identificar un libro por su número ISBN.urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66
un identificador único globalurn:publishing:book
- Un espacio de nombres XML que identifica el documento como un tipo de libro.Los URN pueden identificar ideas y conceptos. No están restringidos a documentos de identificación. Cuando una URN representa un documento, un "resolutor" puede traducirlo a una URL. El documento se puede descargar desde la URL.
Apunta a metadatos sobre un documento en lugar de al documento en sí. Un ejemplo de un URC es uno que apunta al código fuente HTML de una página como:view-source:http://example.com/
En lugar de ubicarlo en Internet o nombrarlo, los datos se pueden colocar directamente en un URI. Un ejemplo podría ser data:,Hello%20World
.
La especificación W3 para HTML dice que la href
etiqueta de un ancla puede contener un URI, no solo una URL. Debería poder poner una URN como <a href="urn:isbn:0451450523">
. Su navegador resolverá esa URN en una URL y descargará el libro por usted.
No que yo sepa, pero el navegador web moderno implementa el esquema URI de datos.
No. Tanto las URL relativas como las absolutas son URL (y URI).
No. Ambas URL con y sin parámetros de consulta son URL (y URI).
No. Ambas URL con y sin identificadores de fragmentos son URL (y URI).
No. Las URL se definen como un subconjunto estricto de URI. Si un analizador permite un carácter en una URL pero no en un URI, hay un error en el analizador. Las especificaciones entran en gran detalle sobre qué caracteres están permitidos en qué partes de URL y URI. Algunos caracteres solo se pueden permitir en algunas partes de la URL, pero los caracteres por sí solos no son una diferencia entre las URL y los URI.
Si. El W3C se dio cuenta de que hay mucha confusión sobre esto. Emitieron un documento de aclaración de URI que dice que ahora está bien usar los términos URL y URI indistintamente (es decir, URI). Ya no es útil segmentar estrictamente los URI en diferentes tipos, como URL, URN y URC.
La definición de URN ahora es más flexible que la que dije anteriormente. El último RFC sobre URI dice que cualquier URI ahora puede ser una URN (independientemente de si comienza con urn:
) siempre que tenga "las propiedades de un nombre". Es decir: es globalmente único y persistente incluso cuando el recurso deja de existir o deja de estar disponible. Un ejemplo: los URI utilizados en documentos HTML como http://www.w3.org/TR/html4/strict.dtd
. Ese URI continuaría nombrando el doctype de transición HTML4 incluso si se eliminara la página del sitio web w3.org.
file://
prefijo. Aunque los navegadores generalmente manejan rutas de archivos sin formato URL. Mozilla publica sus casos de prueba para URL de archivos .
mailto:user@example.com
como una URL, pero otra respuesta a continuación dice que es una URN. ¿Lo cual está bien? ¿Es a la vez URN y URL?
En resumen: un URI identifica, una URL identifica y localiza.
Considere una edición específica de la obra de Shakespeare Romeo y Julieta. , de la cual tiene una copia digital en su red doméstica.
Podrías identificar el texto como urn:isbn:0-486-27557-4
.
Eso sería un URI, pero más específicamente una URN * porque nombra el texto .
También puede identificar el texto como file://hostname/sharename/RomeoAndJuliet.pdf
.
Eso también sería un URI, pero más específicamente una URL porque localiza el texto .
* Nombre de recurso uniforme
(Tenga en cuenta que mi ejemplo está adaptado de Wikipedia )
ISBN 0486275574
también nombra el texto y, por lo tanto, califica como URN. Elijo un formato que creía que sería más familiar para los lectores.
Estas son algunas respuestas muy bien escritas pero largas. Aquí está la diferencia en lo que respecta a CodeIgniter :
URL : http://example.com/some/page.html
URI - /some/page.html
En pocas palabras, la URL es la forma completa de identificar cualquier recurso en cualquier lugar y puede tener diferentes protocolos como FTP, HTTP, SCP, etc.
URI es un recurso en el dominio actual, por lo que necesita encontrar menos información.
En cada caso en que CodeIgniter usa la palabra URL o URI, esta es la diferencia de la que están hablando, aunque en el gran esquema de la web, no es 100% correcto.
/some/page.html
no es un URI. Es una "referencia relativa", que es una especie de "referencia URI". Combinado con un contexto de URI base, puede resolverse en un URI, pero no es en sí mismo un URI. Consulte la Sección 4.1 de RFC 3986 . CodeIgniter probablemente esté usando los términos incorrectos y eso debería llamarse; la Q (como se edita actualmente) no está enmarcada como específica de CodeIgniter.
En primer lugar, saque su mente de la confusión y tómelo con calma y lo comprenderá.
URI => Identificador uniforme de recursos Identifica una dirección completa del recurso, es decir, ubicación, nombre o ambos.
URL => Localizador uniforme de recursos Identifica la ubicación del recurso.
URN => Nombre uniforme del recurso Identifica el nombre del recurso
Ejemplo
Tenemos la dirección https://www.google.com/folder/page.html donde,
URI (Identificador uniforme de recursos) => https://www.google.com/folder/page.html
URL (Localizador uniforme de recursos) => https://www.google.com/
URN (Nombre de recurso uniforme) => /folder/page.html
URI => (URL + URN) o solo URL o solo URN
Una pequeña adición a las respuestas ya publicadas, aquí hay un diagrama de Venn para resumir la teoría (de la hermosa explicación de Prateek Joshi ):
Y un ejemplo (también del sitio web de Prateek):
#posts
identificador de fragmento podría ser parte de la URL
Este es uno de los temas más confusos y posiblemente irrelevantes que he encontrado como profesional de la web.
Según tengo entendido, un URI es una descripción de algo, siguiendo un formato aceptado, que puede definir ambos o el nombre único (identificación) de algo y su ubicación.
Hay dos subconjuntos básicos: URL, que definen la ubicación (especialmente para un navegador que intenta buscar una página web) y URN, que definen el nombre único de algo.
Tiendo a pensar que los URN son similares a los GUID. Son simplemente una metodología estandarizada para proporcionar nombres únicos para las cosas. Al igual que en el declarativo de espacio de nombres que usa el nombre de una empresa, no es como si hubiera un recurso en un servidor en algún lugar para corresponder a esa línea de texto, simplemente identifica algo de manera única.
También tiendo a evitar por completo el término URI y discutir cosas solo en términos de URL o URN, según corresponda, porque causa mucha confusión. La pregunta que realmente deberíamos tratar de responder para las personas no es tanto la semántica, sino cómo identificar al encontrar los términos si existe alguna diferencia práctica en ellos que cambie el enfoque de una situación de programación. Por ejemplo, si alguien me corrige en una conversación y dice: "oh, esa no es una URL, es un URI" Sé que están llenos de eso. Si alguien dice "estamos usando una URN para definir el recurso", es más probable que comprenda que solo lo nombramos de manera única, no lo ubicamos en un servidor.
Si estoy fuera de la base, ¡házmelo saber!
redirect_url
lugar de redirect_uri
, ¿a alguien le importaría realmente?
Identidad = Nombre con ubicación
Cada URL ( U niform R esource L ocator) es un URI ( U niform R esource I dentifier), en términos abstractos, pero cada URI no es una URL. Hay otra subcategoría de URI es URN ( U niform R esource N ame), que es un recurso con nombre pero no especifica cómo ubicarlos, como mailto, news, ISBN es URI. Fuente
URNA:
urn:[namespace identifier]:[namespace specific string]
arn:partition:service:region:account-id:resource
URL:
[scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
Analogía:
para comunicarse con una persona: Conducir (protocolo otros SMS, correo electrónico, teléfono), Dirección (nombre de host otro número de teléfono, correo electrónico) y nombre de la persona (nombre del objeto con una ruta relativa).
URI => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier
Las URL son un subconjunto de URI (que también contienen URN).
Básicamente, un URI es un identificador general, donde una URL especifica una ubicación y una URN especifica un nombre.
[
y ]
no un URI.
Otro ejemplo que me gusta usar cuando pienso en los URI es el atributo xmlns de un documento XML:
<rootElement xmlns:myPrefix="com.mycompany.mynode">
<myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>
En este caso, com.mycompany.mynode sería un URI que identifica de forma exclusiva el espacio de nombres "myPrefix" para todos los elementos que lo utilizan en mi documento XML. Esta NO es una URL porque solo se usa para identificar, no para localizar algo per se.
Debido a las dificultades para distinguir claramente entre URI y URL, hasta donde recuerdo W3C ya no hace una diferencia entre URI y URL ( http://www.w3.org/Addressing/ ).
Son lo mismo . Un URI es una generalización de una URL. Originalmente, se planificó que los URI se dividieran en URL (direcciones) y URN (nombres), pero luego hubo poca diferencia entre un URL y URI y los URI http se utilizaron como espacios de nombres, aunque en realidad no localizaron ningún recurso.
URI, URL, URN
Como indica la imagen de arriba, hay tres componentes distintos en juego aquí. Por lo general, es mejor ir a la fuente cuando se discuten asuntos como estos, así que aquí hay un extracto de Tim Berners-Lee, et. Alabama. en RFC 3986: Identificador uniforme de recursos (URI): Sintaxis genérica:
Un identificador uniforme de recursos (URI) es una secuencia compacta de caracteres que identifica un recurso abstracto o físico.
Un URI puede clasificarse además como un localizador, un nombre o ambos. El término "Localizador uniforme de recursos" (URL) se refiere al subconjunto de URI que, además de identificar un recurso, proporciona un medio para localizar el recurso describiendo su mecanismo de acceso primario (por ejemplo, su "ubicación" de red).
URI es una especie de superclase de URL y URN. Wikipedia tiene un excelente artículo sobre ellos con enlaces al conjunto correcto de RFC.
Wikipedia le dará toda la información que necesita aquí. Citando de http://en.wikipedia.org/wiki/URI :
Una URL es un URI que, además de identificar un recurso, proporciona medios para actuar u obtener una representación del recurso al describir su mecanismo de acceso primario o "ubicación" de red.
URL
Una URL es una especialización de URI que define la ubicación de red de un recurso específico. A diferencia de una URN, la URL define cómo se puede obtener el recurso. Usamos URL todos los días en forma de http://example.com
etc. Pero una URL no tiene que ser una URL HTTP, puede ser ftp://example.com
etc., también.
URI
Un URI identifica un recurso ya sea por ubicación, o un nombre, o ambos. La mayoría de las veces, la mayoría de nosotros usamos URI que definen una ubicación para un recurso. El hecho de que un URI pueda identificar recursos por nombre y ubicación ha llevado a mucha confusión en mi opinión. Un URI tiene dos especializaciones conocidas como URL y URN.
Diferencia entre URL y URI
Un URI es un identificador para algún recurso, pero una URL le brinda información específica para obtener ese recurso. Un URI es una URL y, como señaló un comentarista, ahora se considera incorrecto usar la URL al describir las aplicaciones. En general, si la URL describe la ubicación y el nombre de un recurso, el término a usar es URI. Dado que este es generalmente el caso que la mayoría de nosotros encontramos todos los días, URI es el término correcto.
Según RFC 3986 , los URI se componen de las siguientes piezas:
scheme://authority/path?query
El URI describe el protocolo para acceder a un recurso ( ruta ) o aplicación ( consulta ) en un servidor ( autoridad ).
Todas las URL son URI y todas las URN son URI, pero todas las URI no son URL.
Por favor, consulte para más detalles:
Un URI identifica un recurso ya sea por ubicación, o un nombre, o ambos. La mayoría de las veces, la mayoría de nosotros usamos URI que definen una ubicación para un recurso. El hecho de que un URI pueda identificar recursos por nombre y ubicación ha llevado a mucha confusión en mi opinión. Un URI tiene dos especializaciones conocidas como URL y URN.
Una URL es una especialización de URI que define la ubicación de red de un recurso específico. A diferencia de una URN, la URL define cómo se puede obtener el recurso. Usamos URL todos los días en forma de http://stackoverflow.com , etc. Pero una URL no tiene que ser una URL HTTP, puede ser ftp://example.com
, etc.
Aunque los términos URI y URL están estrictamente definidos, muchos usan los términos para otras cosas para las que están definidos.
Tomemos Apache por ejemplo. Si se solicita http://example.com/foo desde un servidor Apache, tendrá configuradas las siguientes variables de entorno:
REDIRECT_URL
: /foo
REQUEST_URI
: /foo
Con mod_rewrite habilitado, también tendrá estas variables:
REDIRECT_SCRIPT_URL
: /foo
REDIRECT_SCRIPT_URI
: http://example.com/foo
SCRIPT_URL
: /foo
SCRIPT_URI
: http://example.com/foo
Esta podría ser la razón de algo de la confusión.
Ver este documento . Específicamente,
una URL es un tipo de URI que identifica un recurso a través de una representación de su mecanismo de acceso primario (por ejemplo, su "ubicación" de red), en lugar de por otros atributos que pueda tener.
No es un término extremadamente claro, de verdad.
Después de leer las publicaciones, encuentro algunos comentarios muy relevantes. En resumen, la confusión entre las definiciones de URL y URI se basa en parte en qué definición depende de qué y también el uso informal de la palabra URI en el desarrollo de software.
Por definición, URL es un subconjunto de URI [RFC2396]. URI contiene URN y URL. Tanto URI como URL tienen cada uno su propia sintaxis específica que les confiere el estado de ser URI o URL. Los URN son para identificar un recurso de forma exclusiva, mientras que los URL son para localizar un recurso. Tenga en cuenta que un recurso puede tener más de una URL pero solo una URN. [RFC2611]
Como desarrolladores web y programadores, casi siempre nos preocuparemos por la URL y, por lo tanto, por el URI. Ahora, una URL se define específicamente para tener todas las partes del esquema: parte específica del esquema, como por ejemplo https://stackoverflow.com/questions . Esta es una URL y también es un URI. Ahora considere un enlace relativo incrustado en la página como ../index.html. Esto ya no es una URL por definición. Sigue siendo lo que se conoce como una "referencia URI" [RFC2396].
Creo que cuando la palabra URI se usa para referirse a rutas relativas, en realidad se está pensando en "referencia URI". De manera informal, los sistemas de software usan URI para referirse a rutas relativas y URL para la dirección absoluta. Entonces, en este sentido, una ruta relativa ya no es una URL sino un URI.
Aquí está mi simplificación:
URN: nombre de recurso único, es decir, "qué" (por ejemplo, urna: issn: 1234-5678). Esto debe ser único ... ya que no hay dos documentos diferentes que puedan tener la misma urna. Un poco como "uuid"
URL: "dónde" encontrarlo (por ejemplo, https://google.com/pub?issnid=1234-5678 .. o ftp://somesite.com/doc8.pdf )
URI: puede ser una URN o una URL. Esta definición difusa se debe al RFC 3986 producido por W3C e IETF.
La definición de URI ha cambiado con los años, por lo que tiene sentido que la mayoría de las personas se confundan. Sin embargo, ahora puede consolarse con el hecho de que puede referirse a http://somesite.com/something como una URL o URI ... y tendrá razón en ambos sentidos (al menos por el momento de todos modos ... .)
Me preguntaba sobre lo mismo y he encontrado esto: http://docs.kohanaphp.com/helpers/url .
Puedes ver un ejemplo claro usando el url::current()
método. Si tiene esta URL : el http://example.com/kohana/index.php/welcome/home.html?query=string
uso url:current()
le proporciona el URI que, según la documentación, es: bienvenido / inicio
Los URI surgieron de la necesidad de identificar recursos en la Web y otros recursos de Internet , como los buzones electrónicos, de manera uniforme y coherente. Por lo tanto, se puede introducir un nuevo tipo de widget: URI para identificar recursos de widget o usar tel: URI para que los enlaces web provoquen llamadas telefónicas cuando se invocan.
Algunos URI proporcionan información para localizar un recurso (como un nombre de host DNS y una ruta en esa máquina), mientras que otros se usan como nombres de recursos puros. La URL está reservada para identificadores que son localizadores de recursos , incluidas las URL 'http' como http://stackoverflow.com , que identifica la página web en la ruta dada en el host. Otro ejemplo son las URL 'mailto', como mailto: fred@mail.org , que identifica el buzón en la dirección indicada.
Los URN son URI que se usan como nombres de recursos puros en lugar de localizadores. Por ejemplo, el URI: mid: 0E4FC272-5C02-11D9-B115-000A95B55BC8@stackoverflow.com es una URN que identifica el mensaje de correo electrónico que lo contiene en su campo 'Id. De mensaje'. El URI sirve para distinguir ese mensaje de cualquier otro mensaje de correo electrónico. Pero no proporciona la dirección del mensaje en ninguna tienda.
Para responder esto, me apoyaré en una respuesta que modifiqué para otra pregunta . Un buen ejemplo de un URI es cómo identifica un recurso de Amazon S3. Echemos:
s3://www-example-com/index.html
[higo. 1]
que creé como una copia en caché de
http://www.example.com/index.html
[higo. 2]
en el centro de datos S3-US-West-2 de Amazon .
Incluso si StackOverflow me permitiera hacer un hipervínculo al esquema de s3://
protocolo , no le serviría de nada localizar el recurso. Debido a que identifica un recurso , la fig. 1 es un URI válido. También es una URN válida, porque Amazon requiere que el depósito (su término para la authority
parte del URI) sea único en todos los centros de datos. Es útil para localizarlo, pero no indica el centro de datos. Por lo tanto, no funciona como una URL.
Entonces, ¿cómo difieren URI, URL y URN en este caso?
NOTA: RFC 3986 define los URI comoscheme://authority/path?query#fragment
Fácil de explicar:
Asumamos lo siguiente
URI es tu nombre
URL es su dirección con su nombre para comunicarse con usted.
mi nombre es loyola
Loyola es URI
Mi dirección es TN, Chennai 600001.
TN, Chennai 600 001, Loyola es URL
Espero que entiendas,
Ahora veamos un ejemplo preciso
http://www.google.com/fistpage.html
en lo anterior, puede comunicarse con una página llamada firstpage.html ( URI ) utilizando la siguiente http://www.google.com/fistpage.html ( URL ).
Por lo tanto, URI es un subconjunto de URL pero no viceversa.
Un identificador uniforme de recursos (URI) es una cadena de caracteres que identifica un recurso de Internet.
El URI más común es el Localizador Uniforme de Recursos (URL) que identifica una dirección de dominio de Internet. Otro tipo de URI no tan común es el Nombre de recurso universal (URN).
Encontré:
Un identificador uniforme de recursos (URI) representa una especie de panorama general. Puede dividir los URI / URI pueden clasificarse como localizadores (localizadores de recursos uniformes - URL), o como nombres (nombre de recurso uniforme - URN), o ambos. Básicamente, una URN funciona como el nombre de una persona y la URL representa la dirección de esa persona. En resumen, una URN define la identidad de un elemento, mientras que la URL proporciona el método para encontrarlo, finalmente encapsulando estos dos conceptos es el URI
El mejor resumen (técnica) de la OMI es éste
IRI, URI, URL, URN y sus diferencias con Jan Martin Keil:
Todos los que se ocupan de la Web Semántica encuentran repetidamente los términos IRI , URI , URL y URN . Sin embargo, con frecuencia observo que existe cierta confusión sobre su significado exacto. Y, por supuesto, otros también lo notaron (ver, por ejemplo, RFC3305 o buscar en Google). Para ser honesto, incluso me confundí al principio. Pero en realidad el problema no es tan complejo. Echemos un vistazo a las definiciones de los términos mencionados para ver cuáles son las diferencias:
Un identificador uniforme de recursos es una secuencia compacta de caracteres que identifica un recurso abstracto o físico. El conjunto de caracteres está limitado a US-ASCII, excluyendo algunos caracteres reservados. Los caracteres que se encuentran fuera del conjunto de caracteres permitidos se pueden representar mediante la codificación porcentual. Un URI puede usarse como un localizador, un nombre o ambos. Si un URI es un localizador, describe el mecanismo de acceso primario de un recurso. Si un URI es un nombre, identifica un recurso dándole un nombre único. Las especificaciones exactas de la sintaxis y la semántica de un URI dependen del esquema utilizado definido por los caracteres antes del primer colon. [RFC3986]
Un Nombre de recurso uniforme es un URI en la urna del esquema destinado a servir como identificador de recurso persistente, independiente de la ubicación. Históricamente, el término también se refería a cualquier URI. [RFC3986] Una URN consta de un Identificador de espacio de nombres (NID) y una Cadena específica de espacio de nombres (NSS): urn :: La sintaxis y la semántica del NSS es específica de cada NID. Además de los NID registrados, existen varios NID más que no pasaron por el proceso de registro oficial. [RFC2141]
Un localizador uniforme de recursos es un URI que, además de identificar un recurso, proporciona un medio para localizar el recurso al describir su mecanismo de acceso primario [RFC3986]. Como no existe una definición exacta de URL mediante un conjunto de esquemas, "URL es un concepto útil pero informal", que generalmente se refiere a un subconjunto de URI que no contienen URN [RFC3305].
Un identificador de recursos internacionalizados se define de manera similar a un URI, pero el conjunto de caracteres se extiende al conjunto de caracteres codificado universal. Por lo tanto, puede contener caracteres latinos y no latinos, excepto los caracteres reservados. En lugar de extender la definición de URI, se introdujo el término IRI para permitir una distinción clara y evitar incompatibilidades. Los IRI están destinados a reemplazar los URI en la identificación de recursos en situaciones en las que se admite el Juego de caracteres codificado universal. Por definición, cada URI es un IRI. Además, existe un mapeo sobreyectivo definido de IRI a URI: cada IRI puede asignarse exactamente a un URI, pero diferentes IRI pueden asignarse al mismo URI. Por lo tanto, la conversión de un URI a un IRI puede no producir el IRI original. [RFC3987]
IRI is a superset of URI (IRI ⊃ URI)
URI is a superset of URL (URI ⊃ URL)
URI is a superset of URN (URI ⊃ URN)
URL and URN are disjoint (URL ∩ URN = ∅)
RDF permite explícitamente utilizar IRI para nombrar entidades [RFC3987]. Esto significa que podemos usar casi todos los caracteres en los nombres de las entidades. Por otro lado, a menudo tenemos que lidiar con software de estado temprano. Por lo tanto, no es improbable encontrarse con problemas al usar caracteres no ASCII. Por lo tanto, sugiero evitar nombres que no sean URI para entidades y recomiendo usar http URIs [LINKED-DATA]. Para decirlo brevemente: solo use URL para nombrar sus entidades. Por supuesto, podemos referirnos a entidades existentes nombradas por una URN. Sin embargo, debemos evitar crear nuevamente este tipo de identificadores.