URL, URI y URN. Explicación y diferencias
Vamos con este artículo:
URL, URI y URN. Explicación y diferencias. Aún hoy y a pesar de tantos artículos y documentación al respecto, no es un tema que quede totalmente claro. Con esta entrada tengo la esperanza de aclararlo a quien aún no lo tenga y de ayudar a quien comienza. Cualquiera que se dedique al desarrollo web, antes o después se topará con estos términos que suelen conducir a confusión. En los tres casos hablamos de unas cadenas de texto, utilizadas como identificador o dirección de un recurso disponible en Internet. Lo cierto, es que el término URI engloba tanto a las URLs como a las URNs. Dicho de otro modo, una URL es un tipo de URI y un URN también es un tipo de URI. Cada vez que escribimos una dirección web en el navegador y accedemos a un sitio, estamos utilizando una URI.

URI
Uniform Resource Identifier: identificador uniforme de recursos. Como he comentado, es una cadena que indica un recurso en internet. Puede llevar datos adicionales que indiquen cosas como de qué forma acceder al recurso.
URI Wiki W3 URI Ejemplos: Las URLs, URNs y URCs son URIs. En su explicación respectiva se ven varios ejemplos de URI. De todas formas, los desarrolladores de Java, identificarán rápidamente este ejemplo:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
URL
Uniform Resource Locator: localizador uniforme de recursos. Se trata de una URI o cadena que indica un recurso en Internet para poder localizarlo. Es como la dirección postal del recurso. En definitiva, nos provee de lo necesario para saber dónde está el recurso y de qué forma podemos obtenerlo, indicando en la URL, el protocolo a usar:
HTTP,
FTP,
SSH,
FILE, etc.
Ejemplos:https://aprendeitonline.com/cursos/introduccion-programacion/
JSON
ftp://ftp.rediris.es/
telnet://telnet.wmflabs.org
Por tanto, podemos decir que es una URI que se ha especializado.
La URL indica dónde y cómo acceder a un recurso en internet
URN
Uniform Resource Name: nombre uniforme de recursos.
Indica el nombre de un recurso que debe ser único en todo internet, además de independiente de su localización. Como el DNI de una persona si no llevara datos postales. No implica la disponibilidad del recurso.
URNs Sintaxis:URN:NID:NSS
- NID: Namespace Identifier.
- NSS: URN Resolution Server.
Ejemplos:urn:ietf:rfc:2648
urn:isbn:9780007525546
Es también por tanto, una URI que se ha especializado.
La URN indica un nombre único y público de un recurso en internet
¿Y URC?
Uniform Resource Characteristic: característica uniforme de recurso. Pues estamos ante otro tipo de URI. En realidad, otra especialización de la que se suele saber menos y hace referencia a los metadados de la URI.
URC Ejemplos:view-source:https://aprendeitonline.com/
data:text/plain;charset=UTF-8
La URC indica propiedades de la URI
Conclusión
Estamos tan acostumbrados a ver «direcciones de internet», que no nos preocupamos mucho del tema. El problema viene cuando estamos desarrollando y comienzan a aparecer este tipo de entidades que crean bastante confusión. Espero que este artículo, pueda ayudar a esclarecer cualquier duda al respecto o al menos orientar al respecto. Nada más. Un saludo y hasta otra.