URI e URL: Qual a Diferença e Quando Usar Cada Um
Apesar de muitas vezes serem utilizados de forma intercambiável, os identificadores uniformes de recursos (URIs) e os localizadores uniformes de recursos (URLs) não são a mesma coisa. Um URI pode ser um nome, um local ou ambos, enquanto um URL especifica apenas o local.
Entender as diferenças entre URIs e URLs pode te ajudar a desenvolver seu site com mais eficiência. Por exemplo, se você criar uma API REST, saberá como utilizar as URIs ou URLs para identificar cada recurso online ou melhorar a comunicação entre os desenvolvedores.
Neste artigo, vamos apresentar as diferenças entre URIs e URLs e os detalhes de suas estruturas. Também selecionamos os usos mais frequentes de cada um, bem como seus prós e contras.
Conteúdo
O Que é URI
Uma URI (Uniform Resource Identifier) é representada por uma sequência de caracteres utilizados para identificar um recurso da internet, podendo incluir um nome, um local ou ambos. Há dois tipos de URIs: Uniform Resource Locators (URLs) – específicos para indicar o local de um recurso – e Uniform Resource Names (URNs), usado para nomear um elemento da internet sem indicar seu local.
Diferenças Entre URI e URL
No quadro abaixo é possível verificar as principais diferenças entre uma URI e uma URL. Nas próximas seções, vamos nos aprofundar em cada um desses elementos.
URI | URL |
Uniform Resource Identifier – Identificador Uniforme de Recursos | Uniform Resource Locator – Localizador Uniforme de Recursos |
Conjunto de URN e URL. | Subconjunto de uma URI. |
Identifica um recurso e o diferencia de outros através de um nome, local, ou ambos. | Identifica o endereço da web ou o local de um recurso específico. |
Contém componentes como scheme, autoridade, caminho e query. | Possui componentes similares aos de uma URI. Sua autoridade consiste em um nome de domínio e uma porta. |
Um exemplo de URI é ISBN 0-476-35557-4 | Um exemplo de URL é https://hostinger.com |
Geralmente utilizada em XML, arquivos de biblioteca de tags e outros arquivos como JSTL e XSTL. | Utilizada principalmente para identificar páginas na internet (sites). |
O scheme de uma URI pode ser um protocolo, uma especificação ou uma designação – como HTTP, arquivo, ou dado. | O scheme de uma URL é um protocolo, como HTTP e HTTPS. |
Quando Usar URI
Um URI (Uniform Resource Identifier ou identificador uniforme de recursos) é representado por uma string de caracteres e é usada para identificar ou nomear um recurso na internet. É um método bastante comum para identificar e localizar elementos na internet através de diferentes protocolos, incluindo HTTP e FTP. Esses recursos ou elementos endereçáveis incluem páginas da web, imagens, vídeos e outros tipos de arquivos.
Agora, vamos conhecer com mais detalhe os dois tipos de URIs: URN e URL.
Uniform Resource Name (URN)
Um URN, ou Nome Uniforme de Recurso, é um identificador persistente e independente de local desenvolvido para identificar permanentemente um recurso web, independentemente de sua localização. O identificador permanece válido mesmo quando os dados do recurso forem eventualmente realocados para outro lugar.
URNs utilizam um esquema (scheme) específico para nomear os recursos. Por exemplo, a URN urn:isbn:0405999832 usa o número ISBN para identificar um livro específico.
Cada URN tem pelo menos três componentes:
- URN – toda URN usea o prefixo urn: para especificar um scheme.
- Namespace Identifier (NID) – o Número de Identificação é registrado com a autoridade IANA (Internet Assigned Numbers Authority) e geralmente inclui letras, dígitos ou um hífen seguido de dois pontos.
- Namespace-Specific String (NSS) – identifica o recurso dentro da rede de internet. Pode incluir códigos ASCII, dígitos, pontuação e caracteres especiais.
Uniform Resource Locator (URL)
Ao contrário de um URN, um localizador uniforme de recursos nem sempre é persistente e não independe do local. Isso ocorre porque uma URL é responsável por especificar o caminho para o local onde está armazenado um recurso na web, que pode ser alterado. Além disso, URLs não possuem o mesmo esquema de URNs.
A principal diferença entre os dois identificadores é que a URN especifica apenas o nome do recurso, já a URL fornece tanto o caminho quanto o protocolo necessários para acessar o local do recurso.
Em resumo, todas URLs são URIs, mas nem todas URIs são URLs.
Na próxima seção, vamos nos aprofundar na sintaxe e nos componentes das URLs.
Sintaxe URI
A sintaxe de um identificador uniforme de recursos (URI) define sua estrutura, fazendo com que programas computacionais compreendam o recurso. Abaixo indicamos uma sintaxe genérica de URI:
scheme:[//authority]path[?query][#fragment]
Agora, vamos analisar cada um dos elementos constitutivos da sintaxe do identificador URI.
Scheme
Um scheme (esquema) é o primeiro componente de um URI, responsável por definir o sistema de endereços. Em alguns casos, os esquemas de URI podem ser compostos por um protocolo utilizado para acesso, mas outros esquemas podem não especificar o protocolo.
Por exemplo, o scheme about: é usado em navegadores da web, isto é, onde o recurso é incorporado ao usuário e não está associado a nenhum protocolo específico.
Os esquemas de URI podem conter qualquer combinação de letras, dígitos, sinais de adição, pontos ou hífens seguidos de dois pontos. Os schemes de URI mais comuns incluem HTTP, HTTPS, FTP, mailto e file.
Por exemplo, se o URI for file:website.com/pathtofile/intro.pdf, o nome do esquema (scheme name) será file.
Componente de Autoridade
A authority representa um componente opcional de URI, sempre precedido por duas barras (//) e terminado com uma barra (/). Além disso, conta com um ponto de interrogação ou um símbolo de hash (#). O componente de autoridade é composto por três subcomponentes:
- Userinfo – nome de usuário e senha, elementos separados por dois pontos.
- Host – consiste em um endereço IP ou em um nome registrado. O endereço IP deve ser inserido entre colchetes.
- Porta – representa o protocolo para conexão com o servidor. É um subcomponente opcional e, quando utilizado, deve ser seguido de dois pontos.
No exemplo file:website.com/pathtofile/intro.pdf, o componente de autoridade é website.com/.
Caminho
O caminho (ou path) contém uma sequência de segmentos de dados e descreve o local de armazenamento de um recurso em uma estrutura de diretórios e pastas. O caminho deve estar vazio ou separado por uma barra (/).
Por exemplo, a URI telnet://192.0.2.16:80/ ou foo://info.example.com?fred é válida e conta com um caminho vazio, pois não indica o local específico do recurso.
Query Component
O componente de consulta é opcional e deve ser precedido por um ponto de interrogação (?). O componente de query é composto por uma string de consulta de dados não hierárquicos. Normalmente, costuma ser representado por uma sequência de pares de chave=valor (string of key=value pairs).
Por exemplo, na URI https://example.org/test/test1?search=test-question#part2, o componente de consulta é search=test-question.
Fragment Component
O componente de fragmento também é opcional na sintaxe dos URIs. Ele inclui um identificador de fragmento que indica a direção de um recurso secundário. Esse componente, portanto, trata de uma seção diferente do recurso primário, e seu início é marcado por um símbolo de jogo da velha ao final de um URI.
Por exemplo, o componente de fragmento de https://example.org/test/test1?search=test-question#part2 é part2.
Quando Usar URI
A seguir, apresentamos exemplos de casos de uso dos Identificadores Uniformes de Recursos.
Obras audiovisuais
O International Standard Audiovisual Number (ISAN) é um número de código de série usado para identificar obras e suas versões audiovisuais – como filmes, programas de televisão ou documentários. Usando o urn: scheme, os URIs podem identificar o ISAN sem a necessidade de indicar um protocolo ou uma forma de acesso ao recurso.
Por exemplo, o URI urn:isan:0000-0004-87D7-0000-Q-0000-0000-6 refere-se ao filme Vingadores: Ultimato. Ele usa um número específico para identificar o recurso sem revelar sua localização ao usuário.
Números de telefone
URIs também podem identificar recursos através de uma sequência de números de discagem, incluindo um ponto de terminação de rede (NTP) com as informações de roteamento de chamadas. O scheme tel: é apenas um GUID (Globally Unique Identifier, ou Identificador Globalmente Exclusivo) e não se refere a nenhum dispositivo físico.
Assim, no exemplo tel:+1-816-555-6666, a URI descreve um GUID como número de telefone padrão nos EUA.
Acesso Remoto a Servidores
O Telnet é um protocolo de rede em que URIs são usadas para especificar o acesso a um computador ou host remoto via conexão web. Por exemplo, a URI telnet://192.0.2.16:80/ indica que o recurso se conecta ao servidor 192.0.2.16 na porta 80.
O protocolo Telnet é usado principalmente para fazer testes ou solucionar problemas remotamente em servidores da web ou de email.
Quando Usar URL
Uma URL também indica como acessar um recurso na internet. Porém, por ser um Localizador Uniforme de Recursos, descreve a forma de acesso principal, isto é, o local. URLs podem ser constituídos por um protocolo (como HTTP ou FTP) e pelo endereço do recurso.
Assim, as URLs permitem que você localize todos os tipos de conteúdo online, como páginas, sites, imagens e vídeos. A adição de palavras-chave nas URLs pode aumentar a visibilidade da página nos resultados de buscas feitas na internet, beneficiando a otimização dos mecanismos de busca (SEO) do site em questão.
Sintaxe URL
Um localizador URL é um tipo específico de URI e segue a mesma estrutura de sintaxe. Portanto, todos os URLs devem seguir as regras de estrutura definidas para os URIs, mas também incluem informações adicionais responsáveis por indicar a localização de um recurso.
Veja a seguir um exemplo de sintaxe de URL:
https://www.exemplo.com/forum/perguntas/?tag=networking&order=newest#top
Vamos nos aprofundar nos componentes dessa sintaxe.
Scheme
O esquema refere-se ao protocolo utilizado para localizar e acessar um recurso. Um scheme das URLs conta com a identificação do tipo de aplicativo que o dispositivo usa para abrir a URL em questão. Por exemplo, o app FaceTime usa o esquema de URL facetime:// para fazer chamadas.
Aqui estão alguns dos protocolos mais comuns para schemes de URL:
- Hypertext transfer protocol (HTTP) – o Protocolo de Transferência de Hipertexto permite que os usuários acessem dados de páginas da web usando links de hipertexto.
- Hypertext transfer protocol secure (HTTPS) – o Protocolo de Transferência de Hipertexto Seguro protege a transmissão de dados entre o navegador do usuário e o servidor onde o site acessado está hospedado.
- File transfer protocol (FTP) – o Protocolo de Transferência de Arquivos transfere arquivos entre diferentes dispositivos por meio de uma rede.
Alguns protocolos de URL usam um link mailto para identificar endereços de email, ou um Java Database Connectivity (JDBC) para especificar o acesso a um banco de dados com base nas solicitações do usuário.
Componente de Autoridade
Precedido por barras duplas (//), o componente de autoridade tem dois subcomponentes: um nome de domínio e, opcionalmente, uma porta.
Um domínio representa o nome site, e deve ser registrado com autoridades específicas. Exemplos de nome de domínio são: hostinger.com e google.com.
Já a porta é um valor numérico que identifica qual o serviço ou acesso que o usuário está solicitando em um servidor web. Por exemplo, os servidores que hospedam sites na internet geralmente usam a porta 80 para conexões HTTP e a porta 443 para conexões HTTPS. As URLs geralmente omitem as portas de sua sintaxe, pois a maioria dos navegadores de internet já utiliza os valores-padrão das portas para acesso.
Caminho
O elemento path indica o local específico de uma página da web, uma publicação em um site ou outros arquivos que os usuários desejam acessar dentro do nome de domínio. Um caminho também contém a extensão dos arquivos a serem acessados, como imagens e documentos.
No entanto, nem todas URLs exibem o componente de caminho do arquivo. Nos servidores modernos, os componentes de path podem ser omitidos para encurtar os endereços dos sites e páginas, ou seja, as URLs. Alguns exemplos de caminhos são …/software/htp/index.html ou …/forum/question/.
Query String
A sequência de caracteres de consulta é sempre precedida por um ponto de interrogação, e indica certos dados sobre o recurso a ser acessado. Normalmente, uma cadeia de caracteres de consulta é composta por pares de chave, e seus valores são separados pelo símbolo da letra E comercial (&). Um exemplo de query string pode ser ?tag=networking&order=newest.
Como o HTTP não tem estado (é um protocolo stateless), a string de consulta armazena dados e torna cada solicitação do usuário independente da anterior. Assim, a conexão entre o navegador e o servidor é encerrada automaticamente assim que a solicitação do usuário é atendida.
Também conhecidas como parâmetros de consulta de URL, as query strings podem servir para vários propósitos, como filtrar resultados de pesquisa em uma página da web. Essa funcionalidade facilita a navegação e o acesso dos usuários a um conteúdo específico dentro de um recurso mais amplo, como encontrar produtos em uma loja virtual.
Identificadores de fragmentos
Um Fragment Identifier, também chamado de âncora, geralmente aparece no final da URL e é introduzido por um sinal de hash (#). Trata-se de um componente opcional e serve para direcionar o navegador do visitante a um recurso secundário no servidor, ou seja, se refere a uma seção específica dentro de uma página da web.
No caso de uma página HTML, o navegador acessa de forma direta a seção marcada pelo identificador de fragmento. Por exemplo, se a URL for https://example.com/results.html#intro, o usuário irá acessar diretamente a introdução da página chamada results.html.
Quando Usar URL
A seguir, apresentamos exemplos de casos de uso dos Localizadores Uniformes de Recursos:
Endereços de email
Uma URL pode especificar um endereço de email por meio do scheme mailto: (como mailto:abc@exemplo.com). Nesse caso, um hiperlink é fornecido para fazer envios de email diretamente de uma página HTML.
Páginas da Web
As URLs são mais comumente usadas para especificar endereços da web, isto é, sites. Geralmente chamada de URL absoluta, esse formato de URL inclui um protocolo, um nome de domínio e um caminho.
Por exemplo, https://www.exemplo.com/noticias/business/ indica o protocolo (https), o nome do domínio (exemplo) e o caminho do diretório (noticias → business). Portanto, esse endereço direciona os usuários diretamente para uma seção específica do site.
Redirecionamentos
O redirecionamento de um recurso desatualizado para um novo local é outro uso comum de URLs, especialmente ao mover uma página da web para outro diretório ou trocar o domínio de um site.
Por exemplo, se você alterou o endereço do seu site de https://www.blog.exemplo.com para https://www.exemplo.com/blog, poderá utilizar um redirecionamento 301 para facilitar o processo de alteração. Essa ação evita que os visitantes do site encontrem falhas de códigos de status HTTP, como uma página de erro 404.
Páginas internas
Os localizadores uniformes de recursos também podem aparecer sem um protocolo definido e sem nome de domínio, especificando apenas o caminho para o local do recurso. Nesses casos, as URLs vinculam um arquivo específico dentro do domínio, e são chamadas de URL relativas.
Por exemplo, a URL relativa de https://www.exemplo.com/noticias/business/ é /noticias/business/.
Conclusão
Entender a diferença entre URI e URL ajuda você a gerenciar seus recursos digitais e a projetar serviços da web com mais eficiência.
URI significa identificador uniforme de recursos, e é uma sequência de caracteres que costuma identificar um ativo digital por nome, local ou ambos. As URIs podem diferenciar tipos de arquivos e outros recursos da internet.
Por outro lado, um URLs ou localizador uniforme de recursos é uma sequência de caracteres que indica o endereço do ativo digital e o local onde o recurso pode ser acessado através da internet. Como uma URL é parte de uma URI, elas possuem uma estrutura, ou sintaxe, semelhante.
Esperamos que este artigo tenha te ajudado a entender a diferença entre URLs e URIs e a saber quando usar cada uma. Caso ainda tenha alguma dúvida, consulte a seção de perguntas frequentes ou deixe um comentário na seção abaixo.
Perguntas Frequentes sobre a Diferença entre URI e URL
Nesta seção, vamos responder a algumas das perguntas mais comuns sobre URIs e URLs.
Quais São Exemplos de URI e URL?
Um exemplo de URI é https://www.exemplo.com/index.html#date. Nele, um recurso específico está sendo identificado através do identificador de fragmento #date. Por outro lado, https://www.exemplo.com/index.html é o URL, indicando a localização do recurso como um todo.
Qual a Relação entre URIs e URLs?
Os URLs são um tipo específico de URI. Os URIs abrangem uma variedade de identificadores, incluindo URLs e URNs. Tanto os URLs quanto os URIs identificam recursos na internet. A diferença é que os URLs especificam o local exato para acesso direto, enquanto os URNs fornecem um identificador independente do local.