Uniform Resource Identifier: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ft1 (discussione | contributi)
m da unire
m Altri progetti: Aggiunto il parametro "Preposizione" nel template "Interprogetto"
 
(149 versioni intermedie di 100 utenti non mostrate)
Riga 1:
[[File:URI syntax diagram.svg|thumb|alt=Diagramma di sintassi URI. |Diagramma di sintassi di un URI.]]
{{da unire|Uri (informatica)}}
UnIn [[informatica]], lo '''Uniform Resource Identifier''' (URI, un'evoluzione degliin [[Uniform Resource Locator|URLacronimo]] '''URI''') è una stringasequenza di [[carattere (informatica)|caratteri]] che identifica universalmente ed univocamente una risorsa. nelSono esempi di URI: un indirizzo web ([[WebURL]]:), un [[documento]], un'immagine, unindirizzo filedi scaricabile[[posta elettronica]], il codice [[ISBN]] di un servizolibro, unaun casellenumero postaledi elettronica,telefono ecccol prefisso internazionale.
 
== Definizione ==
Rendono disponibili le risorse secondo una varietà di schemi di denominazione e metodi di accesso come HTTP, FTP, e Posta elettronica, indirizzabili mediante una medesima semplice modalità.
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 nomi (URN) o entrambi.
* Un URL ([[Uniform Resource Locator]]) è un URI che identifica una risorsa tramite la sua "collocazione" ("___location") in un grafo. Di fatto, non identifica la risorsa per nome, ma con il modo con cui la si può reperire. Per esempio, l'URL http://www.example.com/ è un URI che identifica una risorsa (l'home page di un 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.example.com.
* 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 identificare una risorsa, senza lasciarne intendere l'ubicazione o come ottenerne una rappresentazione. Per esempio l'URN urn:isbn:0-395-36341-1 è un URI che mappa universalmente e univocamente un libro mediante il suo identificativo, o nome, (0-395-36341-1) nel namespace dei 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 ==
Il formato segue schemi prefissati. Il registro ufficiale viene mantenuto presso la [[IANAInternet Assigned Numbers Authority]].
 
La [[sintassi]] di un URI dipende dallo schema. In generale, URI assoluti si scrivono come segue
 
<ttcode><scheme>:<scheme-specific-part></ttcode>
 
Un URI assoluto contiene il nome dello schema usato (<ttcode><scheme></ttcode>) seguito dai due punti (":") e quindi da una stringa (<ttcode><scheme-specific-part></ttcode>) la cui intrepretazioneinterpretazione dipende dallo schema.
 
La sintassi non prescrive che la componente <ttcode>scheme-specific-part</ttcode> abbia una struttura generale o una semantica comune a tutti gli URI.
 
Tuttavia, un sottoinsieme di URI condivide una sintassi comune per rappresentare relazioni gerarchiche nel [[namespace]]. Questa sintassi di "URI generico" consiste di una sequenza di 4 componenti:
Il formato segue schemi prefissati. Il registro ufficiale viene mantenuto presso la [[IANA]].
 
<ttcode><scheme>://<authority><path>?<query></ttcode>
La sintassi di un URI dipende dallo schema. In generale, URI assoluti si scrivono come segue
 
ognuna delle quali, tranne <ttcode><scheme></ttcode>, può anche non comparire in un determinato URI. Ad esempio, alcuni schemi di URI non ammettono una componente <ttcode><authority></ttcode> mentre altri non utilizzandoutilizzano la componente <ttcode><query></ttcode>.
<tt><scheme>:<scheme-specific-part></tt>
 
Come esempio, lo schema completo di una URL è del tipo (non tutte le componenti sono obbligatorie)
Un URI assoluto contiene il nome dello schema usato (<tt><scheme></tt>) seguito dai due punti (":") e quindi da una stringa (<tt><scheme-specific-part></tt>) la cui intrepretazione dipende dallo schema.
 
<code><scheme>://<___domain>:<port>/<path>?<querystring>#<fragmentid></code>
La sintassi non prescrive che la componente <tt>scheme-specific-part</tt> abbia una struttura generale o una semantica comune a tutti gli URI.
 
mentre lo schema completo di una URN è del tipo
Tuttavia, un sottoinsieme di URI condivide una sintassi comune per rappresentare relazioni gerarchiche nel [[namespace]]. Questa sintassi di "URI generico" consiste di una sequenza di 4 componenti:
 
<code>urn:<NamespaceIDentifier>:<NamespaceSpecificString></code>
<tt><scheme>://<authority><path>?<query></tt>
 
== Esempi di URL ==
ognuna delle quali, tranne <tt><scheme></tt>, può anche non comparire in un determinato URI. Ad esempio, alcuni schemi di URI non ammettono una componente <tt><authority></tt> mentre altri non utilizzando la componente <tt><query></tt>.
* <code><nowiki>ftp://ftp.is.co.za/rfc/rfc1808.txt</nowiki></code> -- schema—schema per servizi [[File Transfer Protocol|FTP]]
* <code><nowiki>http://www.math.uio.no/faq/compression-faq/part1.html</nowiki></code> -- schema—schema per servizi [[httpHypertext Transfer Protocol|HTTP]]
* <code><nowiki>file://C:/Folder1/SubFolder2/file%20text.txt</nowiki></code>—schema per un file nel [[file system]] locale
* <code><nowiki>mailto:mduersttizio@ifiexample.unizh.chorg</nowiki></code> -- schema—schema per indirizzi di [[posta elettronica]]
* <code><nowiki>news:comp.infosystems.www.servers.unix</nowiki></code> -- schema—schema per [[newsgroup]] e articoli [[USENETUsenet]]
* <code><nowiki>telnet://melvyl.ucop.edu/</nowiki></code> -- schema—schema per servizi interattivi [[telnet]]
* <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]]
* <code><nowiki>usb://Samsung/SCX-4x21%20Series?serial=8P36BADL316673B.&interface=1</nowiki></code>—esempio di stampante in ambiente [[Linux]]
* <code>data:text/html;charset=UTF-8,contenuto</code>—inserisce testo/html su [[browser]]
 
== Esempi di URIURN ==
* <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)
* <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'')
* <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.
 
== Numero di telefono ==
* <code><nowiki>ftp://ftp.is.co.za/rfc/rfc1808.txt</nowiki></code> -- schema per servizi [[FTP]]
* 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 ==
* <code><nowiki>http://www.math.uio.no/faq/compression-faq/part1.html</nowiki></code> -- schema per servizi [[http]]
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 = https://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.
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 = https://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 ==
* <code><nowiki>mailto:mduerst@ifi.unizh.ch</nowiki></code> -- schema per indirizzi di posta elettronica
<references/>
 
== Bibliografia ==
* <code><nowiki>news:comp.infosystems.www.servers.unix</nowiki></code> -- schema per newsgroup e articoli [[USENET]]
* RFC 3986
* http://www.ietf.org/rfc/rfc1630.txtRFC 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 ==
* <code><nowiki>telnet://melvyl.ucop.edu/</nowiki></code> -- schema per servizi interattivi [[telnet]]
* [[en:UniformInternationalized Resource Identifier]] (IRI)
* [[fr:Uniform Resource IdentifierLocator]] (URL)
* [[ja:Uniform Resource IdentifierName]] (URN)
 
== Altri progetti ==
* <code><nowiki>irc://irc.freenode.net/wikipedia-it</nowiki></code> -- schema per [[IRC]]
{{interprogetto|preposizione=sullo}}
 
== RiferimentiCollegamenti esterni ==
* {{cita web|url=https://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|citazione= 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. }}
* http://www.ietf.org/rfc/rfc1630.txt (di [[Tim Berners-Lee]])
* http://www.w3.org/TR/uri-clarification/
* http://www.iana.org/assignments/uri-schemes (IANA)
 
{{Web semantico}}
[[categoria:Internet]]
{{Controllo di autorità}}
{{portale|internet}}
 
[[deCategoria:Uniform Resource Identifier| ]]
[[en:Uniform Resource Identifier]]
[[es:URI]]
[[fi:URI]]
[[fr:Uniform Resource Identifier]]
[[ja:Uniform Resource Identifier]]
[[ko:URI]]
[[lv:URI]]
[[nl:Uniform Resource Identifier]]
[[pl:URI]]
[[ru:URI]]
[[zh:统一资源标志符]]