Uniform Resource Identifier: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Folto82 (discussione | contributi)
mNessun oggetto della modifica
m Altri progetti: Aggiunto il parametro "Preposizione" nel template "Interprogetto"
 
(40 versioni intermedie di 27 utenti non mostrate)
Riga 1:
[[File:URI syntax diagram.svg|thumb|alt=Diagramma di sintassi URI. |Diagramma di sintassi di un URI.]]
In [[informatica]], lo '''Uniform Resource Identifier''' (in [[acronimo]] '''URI''') è una sequenza di [[carattere (informatica)|caratteri]] che identifica universalmente ed univocamente una risorsa generica. Sono esempi di URI: un indirizzo web ([[URL]]), un [[documento]], un' indirizzo di [[immagineposta elettronica]], unil codice [[fileISBN]], di un serviziolibro, un indirizzonumero di [[postatelefono elettronica]],col eccprefisso internazionale.
 
== Definizione ==
Gli URI rendono disponibili le risorse secondo una varietà di [[Protocollo di rete|protocolli]] quali [[Hypertext Transfer Protocol|HTTP]], [[File Transfer Protocol|FTP]], ecc.
La RFC3986 definisce con precisione le tre parti dell'acronimo, e la loro finalità:
 
* '''Uniform''': consiste nella identità del contenuto al variare delle forme in cui è presentato. Ad esempio, un libro cartaceo o l'ebook corrispondente. Dà parecchi vantaggi: tipi diversi di identificatori di risorse possono essere usati nello stesso contesto, anche se i meccanismi usati per accedere a tali risorse possono essere diversi; è possibile usare il medesimo meccanismo di interpretazione semantica su tipi diversi di identificatori di risorse; è possibile aggiungere nuovi tipi di risorse senza interferire con il modo in cui gli identificatori già esistenti sono usati; gli identificatori possono essere riutilizzati in diversi contesti, pertanto nuove applicazioni o protocolli possono usare gli identificatori già esistenti.
 
* '''Resource''': Una risorsa è tutto ciò che ha una identità. Non tutte le risorse tuttavia sono reperibili in rete: ad esempio un essere umano, un libro o un'azienda. Più precisamente, una risorsa è la mappatura concettuale di un'entità (o di un insieme di entità), e non è necessariamente legata all'entità in un determinato istante: infatti la risorsa può restare costante anche se le entità che la compongono cambiano nel corso del tempo, a patto che resti costante il legame concettuale (si pensi alla risorsa "Wikipedia": nonostante l'entità cambi nel tempo, poiché il contenuto del sito cambia, la risorsa che concettualmente identifica "Wikipedia" rimane la stessa).
 
* '''Identifier''': Un identificatore è un oggetto che viene impiegato come riferimento a qualcosa che ha un'identità. Nel caso della URI, tale oggetto è una sequenza di caratteri con una sintassi ben definita.
 
== Relazione fra URI, URL e URN ==
Un '''URI''' può essere classificato come '''qualcosa che definisce posizioni (URL''') o comenomi '''(URN''') o entrambi.
* Un '''URL''' ([[Uniform Resource Locator]]) è un URI che, oltre a identificareidentifica una risorsa, forniscetramite mezzila persua agire"collocazione" su("___location") diin essaun ografo. perDi ottenerefatto, unanon rappresentazioneidentifica dellala risorsa descrivendoper ilnome, suoma meccanismocon diil accessomodo primariocon ocui la suasi "ubicazione"può ("___location") in una retereperire. Per esempio, l'URL http://www.wikipediaexample.orgcom/ è un URI che identifica una risorsa (l'home page di Wikipediaun sito web) e lascia intendere che una rappresentazione di tale risorsa (il codice HTML della versione corrente di tale home page) è ottenibile via [[Hypertext Transfer Protocol|HTTP]] da un host di rete chiamato www.wikipediaexample.orgcom.
* Un '''URN''' ([[Uniform Resource Name]]) è un URI che identifica una risorsa mediante un "nome" in un particolare dominio di nomi ("[[namespace]]"). Tale URN deve restare unico e persistente anche qualora la risorsa smetta di esistere o non sia più disponibile. Un URN può quindi essere usato per parlare diidentificare una risorsa, senza lasciarlasciarne intendere la sua l'ubicazione o come ottenerne una rappresentazione. Per esempio l'URN urn:isbn:0-395-36341-1 è un URI che consentemappa diuniversalmente individuaree univocamente un libro mediante il suo identificativo, o nome, (0-395-36341-1) nel namespace dei [[codice ISBN|codici [[ISBN]], ma non suggerisce dove e come possiamo ottenere una copia di tale libro. Si noti che, da RFC8141, un URN è un URI assegnata sotto lo schema URI "urn".
 
== Sintassi ==
Riga 25 ⟶ 33:
ognuna delle quali, tranne <code><scheme></code>, può anche non comparire in un determinato URI. Ad esempio, alcuni schemi di URI non ammettono una componente <code><authority></code> mentre altri non utilizzano la componente <code><query></code>.
 
Come esempio, lo schema completo di una URL è del tipo (non tutte le componenti sono obbligatorie)
== Esempi di URI ==
 
* [URI.___URL] <code><nowiki>ftp://ftp.is.co.za/rfc/rfc1808.txt</nowiki></code> -- schema per servizi [[File Transfer Protocol|FTP]]
<code><scheme>://<___domain>:<port>/<path>?<querystring>#<fragmentid></code>
* [URI.___URL] <code><nowiki>http://www.math.uio.no/faq/compression-faq/part1.html</nowiki></code> -- schema per servizi [[Hypertext Transfer Protocol|HTTP]]
 
* [URI.___URL] <code><nowiki>file://C:/Folder1/SubFolder2/file%20text.txt</nowiki></code> -- schema per un file nel [[file system]] locale
mentre lo schema completo di una URN è del tipo
* [URI.___URL] <code><nowiki>mailto:mduerst@ifi.unizh.ch</nowiki></code> -- schema per indirizzi di [[posta elettronica]]
 
* [URI.___URL] <code><nowiki>news:comp.infosystems.www.servers.unix</nowiki></code> -- schema per [[newsgroup]] e articoli [[Usenet]]
<code>urn:<NamespaceIDentifier>:<NamespaceSpecificString></code>
* [URI.___URL] <code><nowiki>telnet://melvyl.ucop.edu/</nowiki></code> -- schema per servizi interattivi [[telnet]]
 
* [URI.___URL] <code><nowiki>irc://irc.freenode.net/wikipedia-it</nowiki></code> -- schema per [[Internet Relay Chat|IRC]]
== Esempi di URIURL ==
* [URI.___URL] <code><nowiki>usb://Samsung/SCX-4x21%20Series?serial=8P36BADL316673B.&interface=1</nowiki></code> -- Esempio di stampante in ambiente [[Linux]]
* [URI.URN] <code><nowiki>telftp:+1-816-555-1212//ftp.is.co.za/rfc/rfc1808.txt</nowiki></code>—schema --per Esempioservizi di URN che[[File identificaTransfer un recapito telefonico direttoProtocol|FTP]]
* [URI.___URL] <code><nowiki>ftphttp://ftpwww.ismath.couio.zano/rfcfaq/rfc1808compression-faq/part1.txthtml</nowiki></code> -- schema—schema per servizi [[FileHypertext Transfer Protocol|FTPHTTP]]
* [URI.URN] <code><nowiki>isbn:0-395-36341-1</nowiki></code> -- Esempio di URN che identifica un libro nel dominio dei [[ISBN| codici ISBN]] (spazio dei nomi)
* [URI.___URL] <code><nowiki>file://C:/Folder1/SubFolder2/file%20text.txt</nowiki></code> -- schema—schema per un file nel [[file system]] locale
* [URI.URN] <code><nowiki>uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66</nowiki></code> -- Esempio di URN che identifica un [[Universally_unique_identifier|Identificativo Univoco Universale]] (''Universally unique identifier'')
* [URI.___URL] <code><nowiki>mailto:mduersttizio@ifi.unizhexample.chorg</nowiki></code> -- schema—schema per indirizzi di [[posta elettronica]]
* [URI.URN] <code><nowiki>oasis:names:specification:docbook:dtd:xml:4.1.2</nowiki></code> -- Esempio di URN che identifica la versione 4.1.2 del sottodominio [[xml]]. L'identificazione univoca avviene per sottodomini (nello spazio dei nomi) fino al nome non specifico della risorsa specifica finale. L'identificazione diviene specifica ed univoca grazie alla concatenazione esatta (sequenza ordinata) dei nomi dei sottodomini fino alla risorsa finale.
* [URI.___URL] <code><nowiki>news:comp.infosystems.www.servers.unix</nowiki></code> -- schema—schema per [[newsgroup]] e articoli [[Usenet]]
* [URI.___URL] <code><nowiki>telnet://melvyl.ucop.edu/</nowiki></code> -- schema—schema per servizi interattivi [[telnet]]
* [URI.___URL] <code><nowiki>irc://irc.freenode.net/wikipedia-it</nowiki></code> -- schema—schema per [[Internet Relay Chat|IRC]]
* <code>spotify:track:4cOdK2wGLETKBW3PvgPWqT</code>—schema per brani su [[Spotify]]
* [URI.___URL] <code><nowiki>usb://Samsung/SCX-4x21%20Series?serial=8P36BADL316673B.&interface=1</nowiki></code> -- Esempio—esempio di stampante in ambiente [[Linux]]
* <code>data:text/html;charset=UTF-8,contenuto</code>—inserisce testo/html su [[browser]]
 
== Esempi di URN ==
* [URI.URN] <code><nowiki>isbn:0-395-36341-1</nowiki></code> -- Esempio—Esempio di URN che identifica un libro nel dominio dei [[ISBN| codici ISBN]] (spazio dei nomi)
* [URI.URN] <code><nowiki>uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66</nowiki></code> -- Esempio—Esempio di URN che identifica un [[Universally_unique_identifierUniversally unique identifier|Identificativo Univoco Universale]] (''Universally unique identifier'')
* [URI.URN] <code><nowiki>oasis:names:specification:docbook:dtd:xml:4.1.2</nowiki></code> -- Esempio—Esempio di URN che identifica la versione 4.1.2 del sottodominio [[xml]]. L'identificazione univoca avviene per sottodomini (nello spazio dei nomi) fino al nome non specifico della risorsa specifica finale. L'identificazione diviene specifica ed univoca grazie alla concatenazione esatta (sequenza ordinata) dei nomi dei sottodomini fino alla risorsa finale.
 
== Numero di telefono ==
* un numero di telefono, come <code><nowiki>tel:+1-816-555-1212</nowiki></code> è un URI che ha entrambi i caratteri di URL e URN: è uno schema per accedere ad una utenza telefonica tramite chiamata voce (come URL), ma anche identificativo univoco associato ad una utenza (come URN).
 
== Standard per la legislazione dell'Unione Europea ==
L{{' }}''European Legislation Identifier'' (ELI) è uno standard tecnico aperto, basato sul paradigma ''[[Resource Description Framework#Principi e modello dei dati|RDF]]'' per l'identificazione univoca dei contenuti a carattere legale ed il loro arricchimento mediante un insieme di metadati strutturati e personalizzabili, utili:
* alla [[preservazione digitale]] dei documenti nel lungo termine,
* all'accessibilità da parte degli agenti umani in modo efficiente ed efficace
* al [[web semantico]]: per l'interscambio di dati ed informazioni che rendono i contenuti pubblicati elaborabili in modo semi-automatico dalle applicazioni Web<ref>{{cita web | url = http://www.irishstatutebook.ie/pdf/ELI_URI_schema.pdf | titolo = L' European Legislation Identifier e la implementazione nel "normattiva.it" irlandese | formato = pdf | lingua = en | data = 17 agosto 2018 | urlarchivio = httphttps://web.archive.org/web/20180819140657/http://www.irishstatutebook.ie/pdf/ELI_URI_schema.pdf | dataarchivio = 19 agosto 2018 | urlmorto = no}}</ref>, favorendo l'interoperabilità dei sistemi.<br />
Nel 2012, il Consiglio d'Europa costituì un tavolo tecnico formato dai rappresentanti di Danimarca, Irlanda, Francia, Lussemburgo, Regno Unito e dal ''Pubblication Office'' dell'Unione Europea. Basandosi sulle migliori pratiche dei singoli Paesi, nel 2015 fu pubblicata la prima edizione delle linee-guida rivolte ai decisori, politici, giuristi e tecnologi degli Stati membri, che si proponessero di implementare lo standard nelle rispettive istituzioni di appartenenza<ref>{{cita web | url = https://publications.europa.eu/en/publication-detail/-/publication/a8367080-bdad-11e5-bfdd-01aa75ed71a1 | titolo = Metodologia di implementazione di ELI | lingua = en, fr | pagine = 5,6 | sito = publications.europa.eu | urlarchivio = httphttps://web.archive.org/web/20170721044949/https://publications.europa.eu/en/publication-detail/-/publication/a8367080-bdad-11e5-bfdd-01aa75ed71a1 | dataarchivio = 21 luglio 2017 | urlmorto = no}}</ref>.
 
== Note ==
<references/>
 
== Bibliografia ==
* RFC 3986
* RFC 1630 e RFC 2396 (di [[Tim Berners-Lee]])
* httphttps://www.w3.org/TR/uri-clarification/
* httphttps://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml (IANA)
 
== Voci correlate ==
Riga 58 ⟶ 83:
 
== Altri progetti ==
{{interprogetto|preposizione=sullo}}
 
== Collegamenti esterni ==
* {{cita web|url=httphttps://www.w3.org/Protocols/rfc2616/rfc2616-sec12.html|titolo= Content Negotiation (RFC 2616, HTTP/1.1)|lingua=en|accesso= 10 maggio 2018|sito= w3.org|citazonecitazione= Unfortunately for servers and caches, not all users have the same preferences for what is "best," and not all user agents are equally capable of rendering all entity types. For that reason, HTTP has provisions for several mechanisms for "content negotiation" -- the process of selecting the best representation for a given response when there are multiple representations available. }}
 
{{Web semantico}}