URI, URL e URN (Uniform Resource Identifier / Locator / Name)
Definição
URI (Uniform Resource Identifier) é um padrão que define como identificar de forma única um recurso na Web ou em outro sistema.
Esse identificador pode assumir duas formas principais:
- URL (Uniform Resource Locator): identifica e localiza o recurso, indicando onde ele pode ser acessado.
- URN (Uniform Resource Name): identifica o recurso por um nome persistente, sem necessariamente informar sua localização.
Em resumo:
- URI → identifica um recurso.
- URL → identifica e localiza.
- URN → identifica sem localizar.
Todo URL e todo URN são tipos de URI.
Objetivos da distinção entre URI, URL e URN
- Padronizar a identificação de recursos em ambientes distribuídos.
- Separar responsabilidades entre localização (URL) e nomeação persistente (URN).
- Permitir que sistemas referenciem recursos mesmo que sua localização mude.
- Servir de base comum para navegação web, APIs, catálogos e interoperabilidade técnica.
O que é um URN?
URN (Uniform Resource Name) é um identificador que fornece um nome único e estável para um recurso, sem necessariamente apontar para um local de acesso.
É usado em contextos onde a identificação precisa continuar válida ao longo do tempo, como em bibliotecas, normas técnicas e sistemas acadêmicos.
Exemplo:
urn:isbn:9780131103627
Esse URN representa um livro identificado pelo seu ISBN. Não é um link acessível, mas sim um nome padronizado que pode ser referenciado em diferentes sistemas.
ℹ️ Um URN é ideal quando a persistência do identificador é mais importante do que a localização física do recurso.
Exemplos práticos
URL (também é uma URI)
https://programicio.com/conceitos-de-programacao/conceitos-web/dom
- Protocolo:
https
- Domínio:
programicio.com
- Caminho:
/conceitos-de-programacao/conceitos-web/dom
Essa URL pode ser acessada diretamente no navegador. É ao mesmo tempo uma URL e uma URI.
URN (URI que não é uma URL)
urn:isbn:9780131103627
urn:
→ indica que é um identificador nomeadoisbn:
→ namespace (esquema)9780131103627
→ identificador do livro
Usado em catálogos, bibliotecas e bancos de dados técnicos.
Comparativo prático (JavaScript)
É possível analisar as partes de uma URL com a API nativa URL
:
const url = new URL("https://programicio.com/conceitos-de-programacao/conceitos-web/dom");
console.log(url.protocol); // "https:"
console.log(url.hostname); // "programicio.com"
console.log(url.pathname); // "/conceitos-de-programacao/conceitos-web/dom"
O ciclo de uma URL
[Usuário digita uma URL ou clica em um link]
↓
[O navegador interpreta a URL]
↓
[Faz uma requisição HTTP ao servidor]
↓
[O servidor responde com o conteúdo solicitado]
↓
[O navegador exibe a página]
Esse processo é a base da navegação web e de chamadas a APIs.
URI, URL e URN: diferenças resumidas
Tipo | Exemplo | Identifica? | Localiza? |
---|---|---|---|
URI | https://programicio.com/conceitos-de-programacao | Sim | Sim |
URI | urn:isbn:9780131103627 | Sim | Não |
URL | https://programicio.com/conceitos-de-programacao | Sim | Sim |
URN | urn:uuid:123e4567-e89b-12d3-a456-426655440000 | Sim | Não |
Onde os URNs são usados?
URNs aparecem principalmente em contextos onde a estabilidade e padronização do identificador são mais importantes que sua localização:
- ISBNs e ISSNs em bibliotecas digitais
- UUIDs para identificação única de recursos internos
- RFCs e normas técnicas (ex:
urn:ietf:rfc:3986
) - Sistemas acadêmicos, científicos e arquivísticos
Embora pouco usados no desenvolvimento web cotidiano, os URNs são fundamentais em sistemas distribuídos e interoperáveis.