Kakšna je razlika med URI, URL in URN?

O URL, URI in URN se govori, kot da gre za različne stvari, vendar so s prostim očesom videti enako.

Kakšne so razlike med njimi?

Rešitev

Iz RFC 3986:

URI lahko nadalje razvrstimo kot lokator, ime ali oboje.
Izraz "Uniform Resource Locator" (URL) se nanaša na podmnožico URI ki poleg identifikacije vira zagotavljajo tudi sredstva za iskanje vira z opisom njegovega primarnega mehanizma dostopa (npr. njegovo omrežno "lokacijo"). Izraz "enotno ime vira" (URN) se je v preteklosti uporabljal tako za URI v okviru "urn" sheme [RFC2141], ki morajo ostati globalno edinstveni in obstojna, tudi ko vir preneha obstajati ali postane nedostopen, in na vse druge URI z lastnostmi imena.

Vsi naslovi URL so torej URI (pravzaprav ne povsem - glej spodaj), vsi URN pa so URI - vendar se URN in URL razlikujejo, zato ne morete reči, da so vsi URI URL.

EDIT: prej sem mislil, da so vsi URL-ji veljavni URI-ji, vendar kot v skladu s komentarji:

Vsi URL-ji so URI-ji. To je odvisno od razlage RFC. V Javi na primer analizator URI ne mara [ ali ] in to zato, ker specifikacija pravi "should not" in ne "shall not".

To na žalost še bolj zamegli situacijo.

Če še niste prebrali odgovora Roger Pate, vam svetujem, da to tudi storite.

Komentarji (20)

Gre za isto stvar. URI je posplošitev URL. Prvotno je bilo načrtovano, da se bodo URI delili na URL (naslovi) in URN (imena), vendar je bilo potem med URL in URI malo razlik in http URI so se uporabljali kot imenski prostori, čeprav dejansko niso locirali nobenih virov.

Komentarji (4)

V Wikipediji boste našli vse potrebne informacije. Citat iz http://en.wikipedia.org/wiki/URI:

URL je URI, ki poleg identifikacije vira zagotavlja tudi sredstva za delovanje na viru ali pridobitev njegove predstavitve z opisom njegovega primarnega mehanizma dostopa ali omrežne "lokacije".

Komentarji (0)