Qual é a diferença entre um URI, uma URL e uma urna?
as Pessoas falam sobre URLs URIs e URNs como se fossem coisas diferentes, mas são iguais a olho nu.
Quais são as diferenças distinguÃveis entre eles?30 answers
De RFC 3986:
Um URI pode ser classificado como um localizador, um nome, ou ambos. O o termo "Uniform Resource Locator" (URL) refere-se ao subconjunto de URIs que, além de identificar um recurso, fornece um meio de localizar o recurso descrevendo o seu mecanismo de acesso primário (por exemplo, a sua rede "localização"). O termo"nome uniforme do recurso" (URN) tem sido usado historicamente para se referir a ambos os URIs sob a esquema" urna" [RFC2141], que devem permanecer globalmente únicos e persistente mesmo quando o recurso deixa de existir ou se torna indisponÃvel, e a qualquer outro URI com as propriedades de um nome.
Então todos os URLs são URIs( na verdade não é bem ver abaixo), e todas as urnas são URIs - mas URNs e URLs são diferentes, então você não pode dizer que todos os URIs são URLs.
Editar: eu já tinha pensado que todos os URLs são URIs válidos, mas de acordo com os comentários:
Infelizmente, isso turva ainda mais as águas. Se ainda não leu a resposta do Roger Pate, aconselho-o a fazê-lo também.Não "todos os URLs são URIs". Depende da interpretação da RFC. Por exemplo, em Java O analisador URI não gosta de
[
ou]
e isso é porque a especificação diz " não deve "e não"não deve".
URIs identificar e URLs localize; no entanto, localizadores também são identificadores, para cada URL é também um URI, mas há URIs que não são URLs.
Exemplos
- Roger Pate
Este é o meu nome, que é um identificador. É como um URI, mas não pode ser um URL, pois não lhe diz nada sobre a minha localização ou como me contactar. Neste caso, acontece também identificar pelo menos 5 outras pessoas nos EUA so.
- 4914 West Bay Street, Nassau, Bahamas
Este é um localizador, que é um identificador para essa localização fÃsica. É como uma URL e URI (uma vez que todos os URLs são URIs), e também me identifica indirectamente Como "residente de..". Neste caso, identifica-me de forma única, mas isso mudaria se eu tivesse um companheiro de quarto.
Eu digo "gostar" porque estes exemplos não seguem a sintaxe necessária.
Confusão Popular
De Wikipédia:
Em computação, um localizador de recursos uniforme (URL) é um subconjunto do identificador de recursos uniforme (URI) que especifica onde um recurso identificado está disponÃvel e o mecanismo para recuperá-lo. no uso popular e em muitos documentos técnicos e discussões verbais é muitas vezes usado incorretamente como sinônimo de URI, ... [ênfase minha]
Devido a esta confusão comum, muitos produtos e documentação utilizam incorrectamente um termo. em vez do outro, atribuir a sua própria distinção, ou usá-los sinônimo.
URNs
O meu nome, Roger Pate, poderia ser como um URN (Nome de recurso uniforme), excepto que estes são muito mais regulamentados e destinados a serem únicos em tanto espaço como tempo.
Porque eu atualmente compartilho este nome com outras pessoas, não é globalmente único e não seria apropriado como uma urna. No entanto, mesmo que nenhuma outra famÃlia tenha usado este nome, tenho o meu nome. avô paterno, por isso não seria único ao longo do tempo. E mesmo que isso não fosse o caso, a possibilidade de nomear os meus descendentes depois de mim torna isto impróprio como urna.
As urnas são diferentes das URLs nesta restrição rÃgida de unicidade, mesmo que ambas partilhem a sintaxe dos URIs.
URI -- identificador uniforme de recursos
Os URIs são um padrão para identificar documentos usando uma sequência curta de números, letras e sÃmbolos. Eles são definidos por RFC 3986-Uniform Resource Identifier (URI): sintaxe Genérica. URLs, URNs e URCs são todos tipos de URI.
URL -- Localizador uniforme de recursos
Contém informações sobre como obter um recurso da sua localização. Para exemplo:
http://example.com/mypage.html
ftp://example.com/download.zip
mailto:[email protected]
file:///home/user/file.txt
tel:1-888-555-5555
http://example.com/resource?foo=bar#fragment
-
/other/link.html
(um URL relativo, apenas útil no contexto de outro URL)
Os URLs começam sempre com um protocolo (http
) e normalmente contêm informações como o nome da máquina da rede (example.com
) e, muitas vezes, um caminho do documento (/foo/mypage.html
). Os URLs podem ter parâmetros de pesquisa e identificadores de fragmentos.
Identifica um recurso por um nome único e persistente, mas não diz necessariamente como localizá-lo na internet. Normalmente começa com o prefixo urn:
por exemplo:
- Para identificar um livro pelo seu número ISBN.
- {[12] } um identificador único a nÃvel mundial
-
urn:publishing:book
- um espaço de nomes XML que identifica o documento como um tipo de livro.
URC -- Uniform Resource Citation
Aponta para meta-dados sobre um documento e não para o próprio documento. Um exemplo de um URC é aquele que aponta para o código fonte HTML de uma página como: view-source:http://example.com/
URI dos Dados
Em vez de localizá-lo na internet, ou nomeá-lo, os dados podem ser colocado directamente num URI. Um exemplo seria data:,Hello%20World
.
Perguntas Mais Frequentes
Ouvi dizer que não devia dizer mais URL, porquê?A spec do W3 para HTML diz que o href
de uma marca de âncora pode conter um URI, não apenas um URL. Você deve ser capaz de colocar em uma urna como <a href="urn:isbn:0451450523">
. Seu navegador iria então resolver essa urna para um URL e baixar o livro para você.
A diferença entre URL e URI tem alguma coisa a ver com se é relativa ou absoluta?
Não. Ambos os URLs relativos e absolutos são URLs (e URIs.)A diferença entre URL e URI tem alguma coisa a ver com se tem parâmetros de consulta?
Não. Ambos os URLs com e sem parâmetros de consulta São URLs (e URIs.)O a diferença entre URL e URI tem alguma coisa a ver com se tem um identificador de fragmento?
Não. Ambos os URLs com e sem identificadores de fragmentos são URLs (e URIs.)A diferença entre URL e URI tem alguma coisa a ver com quais caracteres são permitidos?
Não. URLs são definidos como um subconjunto estrito de URIs. Se um analisador permite um caractere em uma URL, mas não em um URI, há um bug no analisador. As especificações entram em grande detalhe sobre qual caracteres são permitidos em que partes de URLs e URIs. Alguns caracteres podem ser permitidos apenas em algumas partes da URL, mas os caracteres por si só não são uma diferença entre URLs e URIs. Mas o W3C não diz Agora que URLs e URIs são a mesma coisa? Sim. O W3C percebeu que há uma tonelada de confusão sobre isso. Eles emitiram um documento de clarificação uri que diz que agora está OK para usar os Termos URL e URI indistintamente (para significar URI). Não é mais útil para estritamente segmentar URIs em diferentes tipos, como URL, URN e URC. Pode um URI ser uma URL e uma urna?A definição de urna está agora mais solta do que eu disse acima. O último RFC no URIs diz que qualquer URI pode agora ser uma urna (independentemente de começar com urn:
) desde que tenha "as propriedades de um nome."Isto é: é globalmente único e persistente, mesmo quando o recurso deixa de existir ou fica indisponÃvel. Exemplo: Os URIs usados em doctypes HTML como http://www.w3.org/TR/html4/strict.dtd
. Que a URI continuaria a nomear o HTML4 transitional doctype, mesmo que a página na w3.org o site foi apagado.
Em resumo: um URI identifica, um URL identifica e localiza.
Considere uma edição especÃfica da peça de Shakespeare "Romeu e Julieta", da qual você tem uma cópia digital na sua rede doméstica.Você poderia identificar o texto como {[[0]}.
Isso seria um URI, mas mais especificamente um URN* Porque nomeia o texto .
Você também pode identificar o texto como file://hostname/sharename/RomeoAndJuliet.pdf
.
Isso também seria um URI, mas mais especificamente a URL porque ele localiza o texto .
* Designação Uniforme Do Recurso
URL - http://example.com/some/page.html
URI - / some / page.html
Simplificando, URL é a forma completa de identificar qualquer recurso em qualquer lugar e pode ter diferentes protocolos como FTP, HTTP, SCP, etc.
O URI é um recurso no domÃnio actual, pelo que necessita de menos informação para ser encontrado.
Em cada instância que o CodeIgniter usa a palavra URL ou URI esta é a diferença que eles estão falando sobre, embora no esquema-alvo da web, não é o mais importante.
Em primeiro lugar, tire sua mente da confusão e leve-a simples e você vai entender.
URI => Uniform Resource Identifier Identifica um endereço completo da localização do recurso I-e, nome ou ambos.
URL => Uniform Resource Locator Identifica a localização do recurso.
URN = > nome uniforme do Recurso Identifica o nome do recurso
Exemplo
Temos a morada. https://www.google.com/folder/page.html em que,URI(Uniform Resource Identifier) = > https://www.google.com/folder/page.html
URL (Uniform Resource Locator) = > https://www.google.com/
Urna (nome uniforme do recurso) = > /pasta/página.html
URI = > (URL + URN) ou URL Apenas ou URN apenas
Tanto quanto eu entendo, um URI é uma descrição de algo, seguindo um formato aceito, que pode definir ambos ou o nome único (identificação) de algo e sua localização.
Existem dois subconjuntos básicos-URLs, que definem a localização (especialmente para um navegador tentando procurar uma página web) e URNs, que definem o nome único de algo.
Tendem a pensar em urnas como sendo semelhantes aos GUIDs. Eles são simplesmente uma metodologia padronizada para fornecer nomes únicos para as coisas. Como no declarativo de espaço de nomes que usa o nome de uma empresa - não é como se houvesse um recurso sentado em um servidor em algum lugar para corresponder a essa linha de texto - ele simplesmente identifica algo de forma única.
Eu também tendem a evitar completamente o termo URI e discutir as coisas apenas em termos de URL ou urna, conforme apropriado, porque causa tanta confusão. O pergunta que devemos realmente tentar responder para as pessoas não é tanto a semântica, mas como identificar ao encontrar os termos se há ou não alguma diferença prática neles que irá mudar a abordagem a uma situação de programação. Por exemplo, se alguém me corrige na conversa e diz, "oh, isso não é um URL é um URI" eu sei que eles estão cheios disso. Se alguém diz "Estamos a usar uma urna para definir o recurso", é mais provável que entendamos que só estamos a dar-lhe um nome único, não a localizá-lo num servidor.
Se eu estiver muito enganado, por favor, avisa-me!URI => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier
URL s são um subconjunto de URI's (que também contêm URNs).
Basicamente, um URI é um identificador geral, onde um URL especifica uma localização e uma urna especifica um nome.
Outro exemplo que gosto de usar ao pensar no URIs é o atributo xmlns de um documento XML:
<rootElement xmlns:myPrefix="com.mycompany.mynode">
<myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>
Neste caso, com.a minha empresa.mynode seria um URI que identifica unicamente o espaço de nomes "myPrefix" para todos os elementos que o usam dentro do meu documento XML. Isto não é uma URL porque é usada apenas para identificar, não para localizar algo em si.
Identificador = Nome + Localização
Cada URL(Uniform Resource Locator) é um URI(Uniform Resource Identifier), abstratamente falando, mas cada URI não é um URL. Há uma outra subcategoria de URI é URNA (Uniform Resource Name), que é um recurso nomeado, mas não especificam como localizá-los, como mailto, news, ISBN é URIs. fonte
URN:
- formato URN:
urn:[namespace identifier]:[namespace specific string]
E ... defendam-se.
-
exemplos :
- urn:uuid: 6e8bc430-9c3a-11d9-9669-0800200c9a66
- urn: ISSN: 0167-6423
- urn: isbn: 096139210x
-
Amazon Resource Names (ARNs) é uma identificação única de recursos AWS.
- formato ARN :
arn:partition:service:region:account-id:resource
- formato ARN :
URL:
- formato de URL :
[scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
- :,//,? e # defender-se.
- Os esquemas são https,ftp,gopher,mailto,news,telnet,file,man,info,whatis, ldap...
- exemplos:
- http://ip_server/path?Pesquisa
- ftp://ip_server/path
- mailto:email-address
- notÃcias: newsgroup-nome
- telnet: / / ip_server /
- ficheiro:/ / ip_server / path_segments
- ldap:/ / hostport / dn?atributos?Mira?filtro?extensões
Analogia:
Para chegar a uma pessoa: condução (protocolo outros SMS, e-mail, telefone), endereço (hostname outro número de telefone, emailid) e nome da pessoa (objecto nome com um caminho relativo).
, Devido a dificuldades de distinguir claramente entre URI e URL, tanto quanto me lembro W3C não faz diferença mais entre URI e URL (http://www.w3.org/Addressing/).
URI, URL, URN
Como a imagem acima indica, há três componentes distintos em jogo aqui. Normalmente é melhor ir à fonte ao discutir assuntos como estes, então aqui está um exerto de Tim Berners-Lee, et. al. em RFC 3986: Uniform Resource Identifier (URI): sintaxe Genérica:
Um identificador uniforme de recursos (URI) é uma sequência compacta de caracteres que identificam um abstracto ou fÃsico recurso.
Um URI pode ser classificado como localizador, nome ou ambos. O o termo "Uniform Resource Locator" (URL) refere-se ao subconjunto de URIs que, além de identificar um recurso, fornece um meio de localizar o recurso descrevendo o seu mecanismo de acesso primário (por exemplo, a sua rede "localização").
O URI é uma espécie de super classe de URL ' s e URN'S. A Wikipedia tem um artigo fino sobre eles com ligações para o conjunto certo de RFCs.
URL
Um URL é uma especialização de URI que define a localização da rede de um recurso especÃfico. Ao contrário de uma urna, o URL define como o recurso pode ser obtido. Usamos URLs todos os dias na forma de http://example.com
etc. Mas um URL não tem que ser um URL HTTP, pode ser ftp://example.com
etc., muito.
URI
Um URI identifica um recurso por localização, ou um nome, ou ambos. Mais frequentemente do que não, a maioria de nós usa URIs que define um local para um recurso. O o facto de um URI poder identificar um recurso tanto pelo nome como pela localização tem levado a muita confusão na minha opinião. A URI tem duas especializações conhecidas como URL e URN.
Diferença entre URL e URI
Um URI é um identificador para algum recurso, mas um URL dá-lhe informações especÃficas sobre como obter esse recurso. Um URI é um URL e como um comentarista apontou, agora é considerado incorreto para usar URL ao descrever aplicações. Geralmente, se o URL descreve tanto a localização como o nome de um recurso, o termo a usar é URI. Uma vez que este é geralmente o caso que a maioria de nós encontra todos os dias, URI é o termo correto.
A Wikipédia dará toda a informação que precisar aqui. Citar http://en.wikipedia.org/wiki/URI:
Um URL é um URI que, além de identificar um recurso, fornece meios de agir sobre ou obter uma representação do recurso, descrevendo o seu mecanismo de acesso primário ou "localização"da rede.
De acordo com RFC 3986 , os URIs são constituÃdos pelas seguintes peças:
scheme://authority/path?query
O URI descreve o Protocolo para aceder a um recurso (localização ) ou aplicação (consulta) num servidor (Autoridade).
Todos os URLs são URIs, e todos os URNs São URIs, mas todos os URIs não são URLs.Por favor, Veja mais detalhes:
Um URI identifica um recurso por localização, ou um nome, ou ambos. Mais frequentemente do que não, a maioria de nós usa URIs que define um local para um recurso. O fato de que um URI pode identificar um recurso tanto pelo nome quanto pela localização levou a uma grande confusão na minha opinião. A URI tem duas especializações conhecidas como URL e URN.
Um URL é uma especialização de URI que define a localização da rede de um recurso especÃfico. Ao contrário de uma urna, o URL define como o recurso pode ser obtido. Usamos URLs todos os dias na forma de http://stackoverflow.com , etc. Mas um URL não tem que ser um URL HTTP, pode ser ftp://example.com
, etc.
Embora os Termos URI e URL sejam estritamente definidos, muitos usam os termos para outras coisas para as quais não são definidos.
Vejamos o Apache, por exemplo. Se http://example.com/foo é pedido a um servidor Apache, você terá as seguintes variáveis de ambiente definidas:-
REDIRECT_URL
:/foo
-
REQUEST_URI
:/foo
Com o mod_ reescrito activo, também terá estas variáveis:
-
REDIRECT_SCRIPT_URL
:/foo
-
REDIRECT_SCRIPT_URI
:http://example.com/foo
-
SCRIPT_URL
:/foo
-
SCRIPT_URI
:http://example.com/foo
Ver este documento. Especificamente,
Não é um termo muito claro.Um URL é um tipo de URI que identifica um recurso através de uma representação do seu mecanismo de acesso primário (por exemplo, a sua "localização" da rede), em vez de por alguns outros atributos que pode ter.
Por definição, o URL é um subconjunto do URI [RFC2396]. O URI contém URN e URL. Ambos URI e URL cada um tem sua própria sintaxe especÃfica que confere a eles o status de ser URI ou URL. São para identificar um recurso enquanto URL são para localizar um recurso. Note que um recurso pode ter mais de uma URL, mas apenas uma única urna.[RFC2611]
Como programadores e programadores da web, estaremos quase sempre preocupados com URL e, portanto, URI. Agora um URL é definido especificamente para ter todas as partes scheme: scheme-specific-part, como por exemplo https://stackoverflow.com/questions . Este é um URL e também é um URI. Agora considere um link relativo embutido na página como ../indice.galeria. Esta não é mais uma URL por definição. É ainda o que é referido como uma" referência URI " [RFC2396].
Eu acredito que quando a palavra URI é usada para se referir a caminhos relativos, "URI-reference" é realmente o que está sendo pensado. Então informalmente, os sistemas de software usam URI para se referir à localização relativa e URL para o endereço absoluto. Então, neste sentido, um caminho relativo não é mais uma URL, mas ainda URI.
URN: nome único do recurso, ou seja," o quê " (por exemplo:issn:1234-5678 ). Isto é para ser único .. não há dois médicos diferentes que possam ter a mesma urna. Um pouco como "uuid"
URL:" onde " encontrá-lo ( eg https://google.com/pub?issnid=1234-5678 .. ou ftp://somesite.com/doc8.pdf )
URI: pode ser uma urna ou um URL. Esta definição difusa é graças ao RFC 3986 produzido pela W3C e IETF.
A definição de URI mudou ao longo dos anos, por isso faz sentido que a maioria das pessoas se confunda. No entanto, agora você pode tomar consolo no fato de que você pode se referir a http://somesite.com/something Como URL ou URI ... an you will be right either way (at least fot the time being anyway...)Pode ver um exemplo claro usando o método url::current()
.
Se tiver este URL : http://example.com/kohana/index.php/welcome/home.html?query=string
em seguida, usando url:current()
dá-lhe o URI que, de acordo com a documentação, é: bem-vindo/casa
Os URIs surgiram da necessidade de identificar os recursos na Web, e outros recursos da Internet tais como caixas de correio electrónico de uma forma uniforme e coerente. Assim, pode-se introduzir um novo tipo de widget : URIs para identificar widget recursos ou usar tel: URIs para ter ligações Web faz com que as chamadas telefónicas sejam feitas quando invocadas.
Alguns URIs fornecem informações para localizar um recurso (como um nome de máquina DNS e um caminho nessa máquina), enquanto alguns são usado como nomes de recursos puros. O URL está reservado para identificadores que são localizadores de recursos , incluindo URLs 'http' como http://stackoverflow.com , que identifica a página web no caminho indicado na máquina. Outro exemplo é 'mailto' URLs, como mailto:[email protected] , que identifica a caixa de correio no endereço indicado.
URNs são URIs que são usados como nomes de recursos puros em vez de localizadores. Por exemplo, o URI: mid:[email protected] é uma urna que identifica a mensagem de E-mail que a Contém no campo 'ID de mensagem'. O URI serve para distinguir essa mensagem de qualquer outra mensagem de E-mail. Mas ele próprio não fornece o endereço da mensagem em qualquer loja.
Fácil de explicar:
Vamos assumir o seguinte
URI é o teu nome
URL é o seu endereço com o seu nome para se comunicar consigo.
-
O meu nome é Loyola.
Loyola é URI
A minha morada é TN, Chennai 600001.
TN, Chennai 600 001, Loyola is URL
Espero que compreendas. Agora vamos ver um preciso exemploHttp://www.google.com/fistpage.html
No acima você pode se comunicar com uma página chamada primeira página.html (URI) usando o seguinte http://www.google.com/fistpage.html(URL).
Daà URI é um subconjunto de URL, mas não vice-versa.
Para responder a isto vou apoiar-me numa resposta que modifiquei para outra pergunta . Um bom exemplo de um URI é como você identifica um recurso Amazon S3. Vamos levar: [9]
s3://www-example-com/index.html
[Fig. 1]
Que eu criei como uma cópia em cache de
http://www.example.com/index.html
[Fig. 2]
Na Amazon'sS3-US-West-2 datacenter.
Mesmo que o StackOverflow me permita ligar aos3://
authority
da URI) seja único entre os datacenters. É útil na sua localização, mas não indica o datacenter. Portanto, não funciona como uma URL.
Então, como URI, URL e URN diferem neste case?
- Fig. 1 é um URI
- Fig. 1 é uma urna
- Fig. 2 é um URI
- Fig. 2 é um URL
- o URL de Fig. 1 é http://www-example-com.s3-website-us-west-2.amazonaws.com/
- também http://www-example-com.s3.amazonaws.com/index.html
- mas não http://www-example-com.s3.amazonaws.com/ (nenhum datacenter e nenhum nome de ficheiro é demasiado genérico para Amazon S3)
Nota: a RFC 3986 define URIs como scheme://authority/path?query#fragment
Um identificador de recurso uniforme (URI) é uma cadeia de caracteres que identifica um recurso da Internet.
O URI mais comum é o Uniform Resource Locator (URL) que identifica um endereço de domÃnio na Internet. Outro, não tão comum tipo de URI é o nome do recurso Universal (URN).
Encontrei:
Um identificador de recursos uniforme (URI) representa algo de uma imagem grande. Você pode dividir URIs / URIs pode ser classificado como localizadores (uniform resource locators - URL), ou como nomes (uniform resource name-URN), ou ambos. Então, basicamente, uma urna funciona como o nome de uma pessoa e a URL retrata o endereço dessa pessoa. Resumindo, uma urna define a identidade de um item, enquanto a URL fornece define o método para encontrá - lo, finalmente encapsulando estes dois os conceitos são o URI
Um localizador de recursos uniforme( URL) é o termo usado para identificar um recurso da Internet, incluindo o esquema (http, https, ftp, notÃcias, etc.). Por exemplo Qual é a diferença entre um URI, um URL e uma urna?
É utilizado um identificador de recursos uniforme (URI) para identificar um único documento no servidor Web: por exemplo / questions / 176264 / whats-the-difference-between-a-uri-and-a-url
Em servlets Java, o URI frequentemente se refere ao documento sem o contexto da aplicação web.