Le persone parlano di URL , URI e URN come se fossero cose diverse, ma sembrano uguali a occhio nudo.
Quali sono le differenze distinguibili tra loro?
( URIs ( URLs ) )
Le persone parlano di URL , URI e URN come se fossero cose diverse, ma sembrano uguali a occhio nudo.
Quali sono le differenze distinguibili tra loro?
( URIs ( URLs ) )
Risposte:
Da RFC 3986 :
Un URI può essere ulteriormente classificato come localizzatore, nome o entrambi. Il termine "Uniform Resource Locator" (URL) si riferisce al sottoinsieme di URI che, oltre a identificare una risorsa, forniscono un mezzo per localizzare la risorsa descrivendone il meccanismo di accesso primario (ad esempio, la "posizione" della rete). Il termine "Uniform Resource Name" (URN) è stato storicamente usato per riferirsi ad entrambi gli URI nell'ambito dello schema "urna" [RFC2141] , che sono tenuti a rimanere globalmente univoci e persistenti anche quando la risorsa cessa di esistere o diventa non disponibile, e a qualsiasi altro URI con le proprietà di un nome.
Quindi tutti gli URL sono URI (in realtà non del tutto - vedi sotto) e tutti gli URN sono URI - ma gli URN e gli URL sono diversi, quindi non si può dire che tutti gli URI siano URL.
EDIT: in precedenza avevo pensato che tutti gli URL fossero URI validi, ma come da commenti:
Non "tutti gli URL sono URI". Dipende dall'interpretazione della RFC. Ad esempio in Java il parser URI non piace
[
o]
ed è perché la specifica dice "non dovrebbe" e non "non deve".
In tal modo, purtroppo, le acque si confondono ulteriormente.
Se non hai già letto la risposta di Roger Pate , ti consiglierei di farlo.
[
o ]
ed è perché la specifica dice "non dovrebbe" e non "non deve".
java.net.URI
documento stesso dice "ogni URL è un URI, in senso astratto, ma non ogni URI è un URL". E java.net.URL
fa cose strane come il controllo dell'uguaglianza degli URL risolvendo i nomi host in indirizzi IP (che sembra in contrasto con RFC 3986 sec 6 in primo luogo e interrompe gli host virtuali). Penso che questo significhi solo che la libreria standard Java ha un comportamento incoerente della classe.
URI identifica e URL trova ; tuttavia, anche i localizzatori sono identificatori , quindi ogni URL è anche un URI, ma ci sono URI che non sono URL.
Questo è il mio nome, che è un identificatore. È come un URI, ma non può essere un URL, in quanto non ti dice nulla sulla mia posizione o su come contattarmi. In questo caso capita anche di identificare almeno altre 5 persone negli Stati Uniti da sole.
Questo è un localizzatore, che è un identificatore per quella posizione fisica. È come un URL e un URI (poiché tutti gli URL sono URI) e mi identifica indirettamente come "residente di ..". In questo caso mi identifica in modo univoco, ma ciò cambierebbe se ottengo un compagno di stanza.
Dico "mi piace" perché questi esempi non seguono la sintassi richiesta.
Da Wikipedia :
Nell'informatica, un Uniform Resource Locator (URL) è un sottoinsieme dell'Uniform Resource Identifier (URI) che specifica dove è disponibile una risorsa identificata e il meccanismo per recuperarla. Nell'uso popolare e in molti documenti tecnici e discussioni verbali viene spesso erroneamente usato come sinonimo di URI , ... [enfasi mia]
A causa di questa confusione comune, molti prodotti e documentazione utilizzano erroneamente un termine anziché l'altro, assegnano la propria distinzione o li usano in modo sinonimo.
Il mio nome, Roger Pate, potrebbe essere come un URN (Uniform Resource Name), tranne per il fatto che quelli sono molto più regolamentati e intendono essere unici sia nello spazio che nel tempo.
Poiché attualmente condivido questo nome con altre persone, non è univoco a livello globale e non sarebbe appropriato come URN. Tuttavia, anche se nessun'altra famiglia ha usato questo nome, mi prende il nome da mio nonno paterno, quindi non sarebbe comunque unico nel tempo. E anche se quello non era il caso, la possibilità di nominare i miei discendenti dopo di me fanno di questo inadatto come un URN.
Gli URN sono diversi dagli URL in questo rigido vincolo di unicità, anche se entrambi condividono la sintassi degli URI.
URNs are different from URLs in this rigid uniqueness constraint
Questo significa che gli URL non identificano in modo univoco un luogo?
Gli URI sono uno standard per identificare i documenti utilizzando una breve stringa di numeri, lettere e simboli. Sono definiti da RFC 3986 - Uniform Resource Identifier (URI): sintassi generica . URL, URN e URC sono tutti i tipi di URI.
Contiene informazioni su come recuperare una risorsa dalla sua posizione. Per esempio:
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
(Un URL relativo, utile solo nel contesto di un altro URL)Gli URL iniziano sempre con un protocollo ( http
) e di solito contengono informazioni come il nome host della rete ( example.com
) e spesso un percorso del documento ( /foo/mypage.html
). Gli URL possono avere parametri di query e identificatori di frammenti.
Identifica una risorsa con un nome univoco e persistente, ma non ti dice necessariamente come trovarla su Internet. Di solito inizia con il prefisso urn:
Ad esempio:
urn:isbn:0451450523
per identificare un libro dal suo numero ISBN.urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66
un identificatore univoco globaleurn:publishing:book
- Uno spazio dei nomi XML che identifica il documento come un tipo di libro.Gli URN possono identificare idee e concetti. Non si limitano all'identificazione dei documenti. Quando un URN rappresenta un documento, può essere tradotto in un URL da un "resolver". Il documento può quindi essere scaricato dall'URL.
Indica i metadati relativi a un documento anziché al documento stesso. Un esempio di URC è quello che punta al codice sorgente HTML di una pagina come:view-source:http://example.com/
Invece di localizzarli su Internet o denominarli, i dati possono essere inseriti direttamente in un URI. Un esempio sarebbe data:,Hello%20World
.
Le specifiche W3 per HTML indicano che il href
di un tag anchor può contenere un URI, non solo un URL. Dovresti essere in grado di inserire un URN come <a href="urn:isbn:0451450523">
. Il tuo browser avrebbe quindi risolto quell'URN in un URL e avrebbe scaricato il libro per te.
Non che io sappia, ma il moderno browser Web implementa lo schema URI dei dati.
No. Entrambi gli URL relativi e assoluti sono URL (e URI).
No. Entrambi gli URL con e senza parametri di query sono URL (e URI).
No. Entrambi gli URL con e senza identificatori di frammenti sono URL (e URI).
No. Gli URL sono definiti come un sottoinsieme rigoroso di URI. Se un parser consente un carattere in un URL ma non in un URI, c'è un bug nel parser. Le specifiche sono molto dettagliate su quali caratteri sono ammessi in quali parti di URL e URI. Alcuni caratteri possono essere consentiti solo in alcune parti dell'URL, ma i caratteri da soli non fanno differenza tra URL e URI.
Sì. Il W3C ha capito che c'è molta confusione in merito. Hanno pubblicato un documento di chiarimento sull'URI che afferma che ora è OK utilizzare i termini URL e URI in modo intercambiabile (per indicare URI). Non è più utile segmentare rigorosamente gli URI in diversi tipi come URL, URN e URC.
La definizione di URN è ora più libera di quella che ho affermato sopra. L' ultimo RFC sugli URI afferma che qualsiasi URI può ora essere un URN (indipendentemente dal fatto che inizi con urn:
) purché abbia "le proprietà di un nome". Cioè: è globalmente unico e persistente anche quando la risorsa cessa di esistere o diventa non disponibile. Un esempio: gli URI utilizzati nei doctype HTML come http://www.w3.org/TR/html4/strict.dtd
. Tale URI continuerebbe a nominare il doctype di transizione HTML4 anche se la pagina sul sito Web w3.org fosse eliminata.
file://
prefisso. Sebbene i browser generalmente gestiscano percorsi di file non formattati in URL. Mozilla pubblica i casi di test per gli URL dei file .
mailto:user@example.com
come URL ma un'altra risposta sotto dice che è un URN? Quale è giusto? È sia URN che URL?
In sintesi: un URI identifica, un URL identifica e individua.
Prendi in considerazione un'edizione specifica dell'opera teatrale di Shakespeare Romeo e Giulietta , di cui hai una copia digitale sulla tua rete domestica.
È possibile identificare il testo come urn:isbn:0-486-27557-4
.
Sarebbe un URI, ma più specificamente un URN * perché nomina il testo .
È inoltre possibile identificare il testo come file://hostname/sharename/RomeoAndJuliet.pdf
.
Sarebbe anche un URI, ma più specificamente un URL perché individua il testo .
* Nome risorsa uniforme
(Nota che il mio esempio è adattato da Wikipedia )
ISBN 0486275574
nomina anche il testo e quindi qualificabile come URN. Ho scelto un formato che credevo fosse più familiare ai lettori.
Queste sono alcune risposte molto ben scritte ma lunghe. Ecco la differenza per quanto riguarda CodeIgniter :
URL : http://example.com/some/page.html
URI - /some/page.html
In parole povere, l'URL è il modo completo per identificare qualsiasi risorsa ovunque e può avere protocolli diversi come FTP, HTTP, SCP, ecc.
L'URI è una risorsa sul dominio corrente, quindi ha bisogno di meno informazioni per essere trovato.
In ogni caso in cui CodeIgniter utilizza la parola URL o URI questa è la differenza di cui stanno parlando, sebbene nel grande schema del web non sia corretta al 100%.
/some/page.html
non è un URI. È un "riferimento relativo", che è una specie di "riferimento URI". Combinato con un contesto URI di base, può essere risolto in un URI, ma non è esso stesso un URI. Vedere la sezione 4.1 della RFC 3986 . CodeIgniter sta probabilmente usando i termini errati e che dovrebbero essere richiamati; la Q (come attualmente modificata) non è inquadrata come specifica di CodeIgniter.
Prima di tutto toglie la mente dalla confusione e prendila semplice e capirai.
URI => Identificatore di risorsa uniforme Identifica un indirizzo completo della risorsa, ovvero posizione, nome o entrambi.
URL => Uniform Resource Locator Identifica la posizione della risorsa.
URN => Nome risorsa uniforme Identifica il nome della risorsa
Esempio
Abbiamo l'indirizzo https://www.google.com/folder/page.html dove,
URI (Uniform Resource Identifier) => https://www.google.com/folder/page.html
URL (Uniform Resource Locator) => https://www.google.com/
URN (Uniform Resource Name) => /folder/page.html
URI => (URL + URN) o solo URL o solo URN
Una piccola aggiunta alle risposte già pubblicate, ecco un diagramma di Venn per riassumere la teoria (dalla bella spiegazione di Prateek Joshi ):
E un esempio (anche dal sito Web di Prateek):
#posts
identificatore di frammento potrebbe essere parte dell'URL
Questo è uno degli argomenti più confusi e forse irrilevanti che ho incontrato come professionista del web.
A quanto ho capito, un URI è una descrizione di qualcosa, che segue un formato accettato, che può definire entrambi o il nome univoco (identificazione) di qualcosa e la sua posizione.
Esistono due sottoinsiemi di base: URL, che definiscono la posizione (in particolare a un browser che cerca di cercare una pagina Web) e URN, che definiscono il nome univoco di qualcosa.
Tendo a pensare agli URN come simili ai GUID. Sono semplicemente una metodologia standardizzata per fornire nomi univoci per le cose. Come nel dichiarativo dello spazio dei nomi che utilizza il nome di un'azienda - non è che ci sia una risorsa seduta su un server da qualche parte per corrispondere a quella riga di testo - identifica semplicemente qualcosa in modo univoco.
Tendo anche a evitare completamente il termine URI e discutere le cose solo in termini di URL o URN, a seconda dei casi, perché causa molta confusione. La domanda a cui dovremmo davvero provare a rispondere per le persone non è tanto la semantica, ma come identificare quando si incontrano i termini se ci sono o meno differenze pratiche che cambieranno l'approccio a una situazione di programmazione. Ad esempio, se qualcuno mi corregge nella conversazione e dice "oh, non è un URL è un URI" So che ne sono pieni. Se qualcuno dice "stiamo usando un URN per definire la risorsa", ho maggiori probabilità di capire che lo stiamo solo nominando in modo univoco, non localizzandolo su un server.
Se sono lontano dalla base, per favore fatemi sapere!
redirect_url
invece di redirect_uri
, a qualcuno interesserebbe davvero?
Identità = nome con posizione
Ogni URL ( U niform R esource L ocator) è un URI ( U niform R esource I dentifier ), in termini astratti, ma ogni URI non è un URL. Esiste un'altra sottocategoria di URI: URN ( U niform R esource N ame), che è una risorsa denominata ma non specifica come individuarle, come mailto, news, ISBN è URI. fonte
URNA:
urn:[namespace identifier]:[namespace specific string]
arn:partition:service:region:account-id:resource
URL:
[scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
Analogia:
raggiungere una persona: guida (protocollo altri SMS, email, telefono), indirizzo (nome host altro numero di telefono, emailid) e nome della persona (nome oggetto con un percorso relativo).
URI => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier
Gli URL sono un sottoinsieme di URI (che contengono anche URN).
Fondamentalmente, un URI è un identificatore generale, in cui un URL specifica una posizione e un URN specifica un nome.
[
e ]
non un URI.
Un altro esempio che mi piace usare quando penso agli URI è l'attributo xmlns di un documento XML:
<rootElement xmlns:myPrefix="com.mycompany.mynode">
<myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>
In questo caso com.mycompany.mynode sarebbe un URI che identifica in modo univoco lo spazio dei nomi "myPrefix" per tutti gli elementi che lo utilizzano nel mio documento XML. Questo NON è un URL perché viene utilizzato solo per identificare, non per individuare qualcosa di per sé.
A causa delle difficoltà nel distinguere chiaramente tra URI e URL, per quanto ricordo W3C non fa più la differenza tra URI e URL ( http://www.w3.org/Addressing/ ).
Sono la stessa cosa . Un URI è una generalizzazione di un URL. Inizialmente, gli URI erano pianificati per essere divisi in URL (indirizzi) e URN (nomi) ma poi c'era poca differenza tra un URL e un URI e gli URI http venivano usati come spazi dei nomi anche se in realtà non individuavano alcuna risorsa.
URI, URL, URN
Come indica l'immagine qui sopra, ci sono tre componenti distinti in gioco qui. Di solito è meglio andare alla fonte quando si discute di argomenti come questi, quindi ecco un estratto di Tim Berners-Lee, et. al. in RFC 3986: Uniform Resource Identifier (URI): Sintassi generica:
Un Uniform Resource Identifier (URI) è una sequenza compatta di caratteri che identifica una risorsa astratta o fisica.
Un URI può essere ulteriormente classificato come localizzatore, nome o entrambi. Il termine "Uniform Resource Locator" (URL) si riferisce al sottoinsieme di URI che, oltre a identificare una risorsa, forniscono un mezzo per localizzare la risorsa descrivendone il meccanismo di accesso primario (ad esempio, la "posizione" della sua rete).
L'URI è una specie della super classe di URL e URN. Wikipedia ha un bell'articolo su di loro con collegamenti al giusto set di RFC.
Wikipedia fornirà tutte le informazioni di cui hai bisogno qui. Citando da http://en.wikipedia.org/wiki/URI :
Un URL è un URI che, oltre a identificare una risorsa, fornisce i mezzi per agire o ottenere una rappresentazione della risorsa descrivendone il meccanismo di accesso primario o la "posizione" della rete.
URL
Un URL è una specializzazione di URI che definisce il percorso di rete di una risorsa specifica. A differenza di un URN, l'URL definisce come ottenere la risorsa. Usiamo gli URL ogni giorno sotto forma di http://example.com
ecc. Ma un URL non deve essere un URL HTTP, può anche essere ftp://example.com
ecc.
URI
Un URI identifica una risorsa per posizione, un nome o entrambi. Il più delle volte, la maggior parte di noi utilizza URI che definiscono una posizione per una risorsa. Il fatto che un URI sia in grado di identificare una risorsa sia per nome che per località ha portato molta confusione secondo me. Un URI ha due specializzazioni conosciute come URL e URN.
Differenza tra URL e URI
Un URI è un identificatore per alcune risorse, ma un URL fornisce informazioni specifiche su come ottenere quella risorsa. Un URI è un URL e, come ha sottolineato un commentatore, ora è considerato errato utilizzare l'URL durante la descrizione delle applicazioni. In genere, se l'URL descrive sia la posizione che il nome di una risorsa, il termine da utilizzare è URI. Dal momento che questo è generalmente il caso che la maggior parte di noi incontra ogni giorno, URI è il termine corretto.
Secondo RFC 3986 , gli URI sono composti dai seguenti pezzi:
scheme://authority/path?query
L'URI descrive il protocollo per l'accesso a una risorsa ( percorso ) o ad un'applicazione ( query ) su un server ( autorità ).
Tutti gli URL sono URI e tutti gli URN sono URI, ma tutti gli URI non sono URL.
Si prega di fare riferimento per maggiori dettagli:
Un URI identifica una risorsa per posizione, un nome o entrambi. Il più delle volte, la maggior parte di noi utilizza URI che definiscono una posizione per una risorsa. Il fatto che un URI sia in grado di identificare una risorsa sia per nome che per località ha portato molta confusione secondo me. Un URI ha due specializzazioni conosciute come URL e URN.
Un URL è una specializzazione di URI che definisce il percorso di rete di una risorsa specifica. A differenza di un URN, l'URL definisce come ottenere la risorsa. Usiamo gli URL ogni giorno sotto forma di http://stackoverflow.com , ecc. Ma un URL non deve essere un URL HTTP, può essere ftp://example.com
, ecc.
Sebbene i termini URI e URL siano definiti in modo rigoroso, molti usano i termini per scopi diversi da quelli per cui sono definiti.
Prendiamo Apache per esempio. Se http://example.com/foo è richiesto da un server Apache, avrai le seguenti variabili d'ambiente impostate:
REDIRECT_URL
: /foo
REQUEST_URI
: /foo
Con mod_rewrite abilitato, avrai anche queste variabili:
REDIRECT_SCRIPT_URL
: /foo
REDIRECT_SCRIPT_URI
: http://example.com/foo
SCRIPT_URL
: /foo
SCRIPT_URI
: http://example.com/foo
Questo potrebbe essere il motivo di un po 'di confusione.
Vedere questo documento . In particolare,
un URL è un tipo di URI che identifica una risorsa tramite una rappresentazione del suo meccanismo di accesso primario (ad esempio, la "posizione" della sua rete), piuttosto che mediante alcuni altri attributi che potrebbe avere.
Non è un termine estremamente chiaro, davvero.
Dopo aver letto i post, trovo alcuni commenti molto pertinenti. In breve, la confusione tra le definizioni URL e URI si basa in parte su quale definizione dipende da quale e anche l'uso informale della parola URI nello sviluppo del software.
Per definizione, l'URL è un sottoinsieme di URI [RFC2396]. L'URI contiene URN e URL. Sia l'URI che l'URL hanno ciascuno una propria sintassi specifica che conferisce loro lo stato di URI o URL. L'URN serve per identificare in modo univoco una risorsa mentre l'URL serve per individuare una risorsa. Si noti che una risorsa può avere più di un URL ma solo un singolo URN. [RFC2611]
Come sviluppatori web e programmatori ci occuperemo quasi sempre di URL e quindi URI. Ora un URL è definito in modo specifico per avere tutto lo schema delle parti: parte specifica dello schema, come ad esempio https://stackoverflow.com/questions . Questo è un URL ed è anche un URI. Ora considera un link relativo incorporato nella pagina come ../index.html. Questo non è più un URL per definizione. È ancora ciò che viene definito "riferimento URI" [RFC2396].
Credo che quando la parola URI è usata per riferirsi a percorsi relativi, "riferimento URI" è in realtà ciò a cui si sta pensando. Pertanto, in modo informale, i sistemi software utilizzano l'URI per fare riferimento al relativo percorso e URL per l'indirizzo assoluto. Quindi, in questo senso, un percorso relativo non è più un URL ma comunque URI.
Ecco la mia semplificazione:
URN: nome di risorsa univoco, ovvero "cosa" (ad esempio urna: issn: 1234-5678). Questo è pensato per essere unico ... come in nessun altro documento può avere la stessa urna. Un po 'come "uuido"
URL: "dove" trovarlo (ad es . Https://google.com/pub?issnid=1234-5678 .. o ftp://somesite.com/doc8.pdf )
URI: può essere un URN o un URL. Questa definizione fuzzy è grazie alla RFC 3986 prodotta da W3C e IETF.
La definizione di URI è cambiata nel corso degli anni, quindi ha senso confondere la maggior parte delle persone. Tuttavia, ora puoi trovare conforto nel fatto che puoi riferirti a http://somesite.com/something come un URL o URI ... e avrai ragione in entrambi i casi (almeno per il momento comunque .. .)
Mi chiedevo la stessa cosa e ho trovato questo: http://docs.kohanaphp.com/helpers/url .
Puoi vedere un chiaro esempio usando il url::current()
metodo Se si dispone di questo URL : http://example.com/kohana/index.php/welcome/home.html?query=string
quindi l'utilizzo url:current()
fornisce l' URI che, secondo la documentazione, è: welcome / home
Gli URI sono nati dalla necessità di identificare le risorse sul Web e altre risorse Internet come le caselle di posta elettronica in modo uniforme e coerente. Pertanto, è possibile introdurre un nuovo tipo di widget: URI per identificare le risorse del widget o utilizzare tel: URI per avere collegamenti Web che causano chiamate telefoniche quando vengono invocate.
Alcuni URI forniscono informazioni per individuare una risorsa (come un nome host DNS e un percorso su quella macchina), mentre altri vengono utilizzati come nomi di risorse pure. L' URL è riservato agli identificatori che sono localizzatori di risorse , inclusi gli URL "http" come http://stackoverflow.com , che identifica la pagina Web nel percorso specificato sull'host. Un altro esempio sono gli URL "mailto", come mailto: fred@mail.org , che identifica la cassetta postale all'indirizzo indicato.
Gli URN sono URI che vengono utilizzati come nomi di risorse pure anziché come localizzatori. Ad esempio, l'URI: mid: 0E4FC272-5C02-11D9-B115-000A95B55BC8@stackoverflow.com è un URN che identifica il messaggio e-mail che lo contiene nel suo campo "ID messaggio". L'URI serve a distinguere quel messaggio da qualsiasi altro messaggio di posta elettronica. Ma non fornisce di per sé l'indirizzo del messaggio in nessun negozio.
Per rispondere a questo mi affido a una risposta che ho modificato in un'altra domanda . Un buon esempio di URI è il modo in cui identifichi una risorsa Amazon S3. Prendiamo:
s3://www-example-com/index.html
[Figura. 1]
che ho creato come copia cache di
http://www.example.com/index.html
[Figura. 2]
nel data center Amazon S3-US-West-2 .
Anche se StackOverflow mi permettesse di collegarmi all'hyperlink allo schema del s3://
protocollo , non ti farebbe bene a localizzare la risorsa. Perché identifica una risorsa , fig. 1 è un URI valido. È anche un URN valido, perché Amazon richiede che il bucket (il loro termine per la authority
parte dell'URI) sia univoco tra i datacenter. È utile per individuarlo, ma non indica il datacenter. Pertanto non funziona come un URL.
Quindi, in che modo URI, URL e URN differiscono in questo caso?
NOTA: RFC 3986 definisce gli URI comescheme://authority/path?query#fragment
Facile da spiegare:
Supponiamo che:
URI è il tuo nome
L'URL è il tuo indirizzo con il tuo nome per comunicare con te.
mi chiamo Loyola
Loyola è URI
il mio indirizzo è TN, Chennai 600001.
TN, Chennai 600 001, Loyola è URL
Spero tu capisca,
Ora vediamo un esempio preciso
http://www.google.com/fistpage.html
in quanto sopra puoi comunicare con una pagina chiamata firstpage.html ( URI ) utilizzando il seguente http://www.google.com/fistpage.html ( URL ).
Quindi l'URI è un sottoinsieme di URL ma non viceversa.
Un URI (Uniform Resource Identifier) è una stringa di caratteri che identifica una risorsa Internet.
L'URI più comune è l'Uniform Resource Locator (URL) che identifica un indirizzo di dominio Internet. Un altro tipo di URI non così comune è l'URN (Universal Resource Name).
Ho trovato:
Un identificatore di risorsa uniforme (URI) rappresenta una sorta di quadro generale. È possibile dividere URI / URI che possono essere classificati come localizzatori (localizzatori di risorse uniformi - URL) o come nomi (nome di risorsa uniforme - URN) o entrambi. Quindi, fondamentalmente, un URN funziona come il nome di una persona e l'URL mostra l'indirizzo di quella persona. Per farla breve, un URN definisce l'identità di un elemento, mentre l'URL fornisce definisce il metodo per trovarlo, infine incapsulare questi due concetti è l'URI
Il migliore imo (tecnico) di riepilogo è questo
IRI, URI, URL, URN e le loro differenze rispetto a Jan Martin Keil:
Chiunque abbia a che fare con il Web semantico si imbatte ripetutamente nei termini IRI , URI , URL e URN . Tuttavia, osservo spesso che c'è un po 'di confusione sul loro significato esatto. E, naturalmente, anche altri lo hanno notato (vedi ad es. RFC3305 o cerca su Google). Ad essere sincero, all'inizio ero persino confuso. Ma in realtà il problema non è così complesso. Diamo un'occhiata alle definizioni dei termini citati per vedere quali sono le differenze:
Un identificatore di risorsa uniforme è una sequenza compatta di caratteri che identifica una risorsa astratta o fisica. Il set di caratteri è limitato a US-ASCII esclusi alcuni caratteri riservati. I caratteri al di fuori del set di caratteri consentiti possono essere rappresentati utilizzando la codifica percentuale. Un URI può essere utilizzato come localizzatore, nome o entrambi. Se un URI è un localizzatore, descrive il meccanismo di accesso principale di una risorsa. Se un URI è un nome, identifica una risorsa assegnandole un nome univoco. Le specifiche esatte di sintassi e semantica di un URI dipendono dallo schema utilizzato definito dai caratteri prima dei primi due punti. [RFC3986]
Un nome di risorsa uniforme è un URI nell'urna dello schema destinato a fungere da identificatore di risorsa persistente, indipendente dalla posizione. Storicamente, il termine si riferiva anche a qualsiasi URI. [RFC3986] Un URN è costituito da un identificatore dello spazio dei nomi (NID) e una stringa specifica dello spazio dei nomi (NSS): urna :: La sintassi e la semantica dell'NSS è specifica specifica per ciascun NID. Oltre ai NID registrati, esistono molti altri NID che non sono stati sottoposti al processo di registrazione ufficiale. [RFC2141]
Un Uniform Resource Locator è un URI che, oltre a identificare una risorsa, fornisce un mezzo per localizzare la risorsa descrivendone il meccanismo di accesso primario [RFC3986]. Poiché non esiste una definizione esatta di URL mediante una serie di schemi, "URL è un concetto utile ma informale", in genere riferito a un sottoinsieme di URI che non contengono URN [RFC3305].
Un identificatore di risorse internazionalizzato è definito in modo simile a un URI, ma il set di caratteri è esteso al set di caratteri con codice universale. Pertanto, può contenere qualsiasi carattere latino e non latino tranne i caratteri riservati. Invece di estendere la definizione di URI, il termine IRI è stato introdotto per consentire una chiara distinzione ed evitare incompatibilità. Gli IRI hanno lo scopo di sostituire gli URI nell'identificazione delle risorse in situazioni in cui è supportato il set di caratteri codificati universali. Per definizione, ogni URI è un IRI. Inoltre, esiste una mappatura suriettiva definita di IRI su URI: ogni IRI può essere mappato esattamente su un URI, ma diversi IRI potrebbero essere mappati sullo stesso URI. Pertanto, la conversione da un URI a un IRI potrebbe non produrre l'IRI originale. [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 consente esplicitamente di utilizzare gli IRI per denominare le entità [RFC3987]. Ciò significa che possiamo usare quasi tutti i caratteri nei nomi delle entità. D'altra parte, spesso abbiamo a che fare con software di stato iniziale. Pertanto, è improbabile che si verifichino problemi utilizzando caratteri non ASCII. Pertanto, suggerisco di evitare nomi non URI per entità e consiglio di utilizzare URI http [LINKED-DATA]. Per dirla brevemente: usa solo gli URL per nominare le tue entità. Naturalmente, possiamo fare riferimento a entità esistenti denominate da un URN. Tuttavia, dovremmo evitare di creare di nuovo questo tipo di identificatori.