Ľudia hovoria o URL, URI a URN, akoby to boli rozdielne veci, ale voľným okom vyzerajú rovnako.
Aké sú medzi nimi rozoznateľné rozdiely?
Z RFC 3986:
URI možno ďalej klasifikovať ako lokátor, názov alebo oboje.
Termín "Uniform Resource Locator" (URL) sa vzťahuje na podmnožinu URI
ktoré okrem identifikácie zdroja poskytujú aj prostriedky na
lokalizáciu zdroja opisom jeho primárneho prístupového mechanizmu
(napr. jeho sieťové "umiestnenie"). Termín "Uniform Resource Name"
(URN) sa v minulosti používal na označenie URI v rámci
"urn" schémy [RFC2141], ktoré musia zostať globálne jedinečné
a pretrvávajúce, aj keď zdroj prestane existovať alebo sa stane
nedostupný, a na akýkoľvek iný URI s vlastnosťami názvu.
Takže všetky adresy URL sú URI (v skutočnosti nie celkom - pozri ďalej) a všetky názvy URN sú URI - ale názvy URN a adresy URL sa líšia, takže nemožno povedať, že všetky názvy URI sú adresy URL.
EDIT: Predtým som si myslel, že všetky URL sú platné URI, ale podľa komentárov:
Všetky URL sú URI". Závisí to od interpretácie RFC. Napríklad v Jave sa parseru URI nepáči [
alebo ]
a to'preto, lebo špecifikácia hovorí "should not" a nie "shall not".
Takže to bohužiaľ ešte viac zamúti vodu.
Ak ste si ešte neprečítali odpoveď Rogera Patea, odporúčam to urobiť tiež.
Sú to tie isté veci. URI je zovšeobecnením adresy URL. Pôvodne sa URI plánovalo rozdeliť na URL (adresy) a URN (názvy), ale potom bol medzi URL a URI malý rozdiel a http URI sa používali ako menné priestory, aj keď v skutočnosti nelokalizovali žiadne zdroje.
Všetky potrebné informácie vám poskytne Wikipédia. Citujem z http://en.wikipedia.org/wiki/URI:
URL je URI, ktorý okrem identifikácie zdroja poskytuje prostriedky na pôsobenie na zdroj alebo získanie jeho reprezentácie tým, že opisuje jeho primárny prístupový mechanizmus alebo sieťové "umiestnenie".