Qual è la differenza tra un URI e un URL?


44

Ho letto queste pagine:

Conosco di base URL, URN e URI; ma poco sulle loro differenze . La cosa che non riesco a capire è in una pagina come: http://www.bernzilla.com/item.php?id=100quale parte è URL, URN e URI!
L'URI è parte intera ma URL e URN ??

Foto da Wikipedia

Modifica:
da w3c.org:

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 tramite alcuni altri attributi che potrebbe avere.

da www.damnhandy.com :

Ora è considerato errato utilizzare l'URL durante la descrizione delle applicazioni.

Ora è idun attributo? Che dire della parte dell'applicazione? PHP è un'applicazione?


3
Questa domanda è stata posta alcune volte su Stack Overflow e ha suscitato molta attenzione e buone risposte: qual è la differenza tra un URI e un URL?
hippietrail,

Risposte:


42

Diagramma di Venn URI / URL

URL - Uniform Resource Locator

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.

URN - Nome risorsa uniforme

Identifica una risorsa con un nome univoco e persistente. 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 globale
  • urn: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.

URI - Identificatore di risorsa uniforme

Gli URI comprendono URL, URN e altri modi per identificare una risorsa.

Un esempio di un URI che non è né un URL né un URN potrebbe essere un URI di dati come data:,Hello%20World. Non è un URL né un URN perché l'URI contiene i dati. Non lo nomina né ti dice come localizzarlo sulla rete.

Esistono anche citazioni di risorse uniformi (URC) che indicano metadati su un documento piuttosto che sul documento stesso. Un esempio di un URC sarebbe un identificatore per visualizzare il codice sorgente di una pagina web: view-source:http://example.com/. Un URC è un altro tipo di URI che non è né URL né URN.

Domande frequenti

Ho sentito che non dovrei più dire l'URL, perché?

Le specifiche W3 per HTML indicano che il hrefdi 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.

Alcuni browser sanno davvero come recuperare i documenti tramite URN?

Non che io sappia, ma il moderno browser Web implementa lo schema URI dei dati.

La differenza tra URL e URI ha a che fare con il fatto che sia relativo o assoluto?

No. Entrambi gli URL relativi e assoluti sono URL (e URI).

La differenza tra URL e URI ha qualcosa a che fare con se ha parametri di query?

No. Entrambi gli URL con e senza parametri di query sono URL (e URI).

La differenza tra URL e URI ha a che fare con se ha un identificatore di frammento?

No. Entrambi gli URL con e senza identificatori di frammenti sono URL (e URI).

Ma il W3C non dice ora che URL e URI siano la stessa cosa?

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.

Un URI può essere sia un URL che un URN?

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.


Ciò che mi confonde con il chiarimento del W3C e la distinzione URL / URI è che in realtà molti documenti del server Web descrivono l'URL come l'intera stringa di richiesta e l'URI come "la parte che segue il protocollo". Fa anche riferimento a quella parte con il nome variabile $ uri. Ad esempio: nginx.com/blog/creating-nginx-rewrite-rules Questo non è strettamente "corretto" secondo le definizioni del W3C? Ma è il più utile penso.
mike

1
Gli URI sono stati ampiamente fraintesi. Molte persone pensavano che un URI fosse una porzione dell'URL come un URL relativo, o seguendo il protocollo. Questo non è mai stato corretto, ma quelle idee sono diventate abbastanza spesso nella documentazione del server o nelle API di programmazione.
Stephen Ostermiller

10

Penso che quegli articoli spieghino abbastanza bene. Per rispondere alla tua domanda, tutto questo è un URL:

http://www.bernzilla.com/item.php?id=100

Ogni bit di esso - http: www.bernzilla.come così via ha il suo nome:

  • http: è lo schema
  • www è il sottodominio
  • bernzilla.com è il dominio
  • com è il dominio di primo livello o TLD
  • (potrebbe esserci una cartella o un percorso lì, ad esempio /dir/item.php ma non c'è)
  • item.php è la pagina o il nome file con estensione php
  • id = 100 è la stringa di query

Posso vedere dato quel diagramma da Wikipedia perché stai chiedendo però. Quel diagramma sta dicendo che ci sono due tipi di URI: URL e URN e il bit sfocato nel mezzo è quando qualcosa può essere entrambi.


Grazie per la risposta. Ho modificato la mia domanda. puoi dare di nuovo un'occhiata?
annullato il

Non capisco quella citazione sulla descrizione delle applicazioni e non riesco a vedere un commento in cui qualcuno lo sottolinea. Aggiornerò la mia risposta per descrivere le parti separate.
paulmorriss,

@paul non intendi l' URI nella prima riga? id=100non è un luogo , è un indicatore.
DisgruntledGoat

Penso di voler dire URL. Con alcuni siti se si modifica l'ID si ottengono diverse "pagine" in modalità normale. Leggendo la definizione di risorsa su Wikipedia, penso che una pagina sia un esempio di risorsa.
paulmorriss,

7

Non è il caso che l'URL che menzioni sia composto sia da una parte URL che da una parte URN.

http://www.bernzilla.com/item.php?id=100 è sia un URL che un URI.

Fondamentalmente gli URI sono un superset di URL e di URN. C'è anche qualche sovrapposizione tra URL e URN.

Un URI identifica una risorsa per posizione, un nome o entrambi.

Quindi qualsiasi URL è un URI, qualsiasi URN è un URI, ma non ogni URI è un URL.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.