Каква е разликата между URI, URL и URN?

Хората говорят за URL, URI и URN, сякаш са различни неща, но с просто око изглеждат еднакво.

Какви са различията между тях?

Решение

От RFC 3986:

URI може да бъде класифициран като локатор, име или и двете.
Терминът "Uniform Resource Locator" (URL) се отнася до подмножеството на URI които, освен че идентифицират даден ресурс, предоставят средства за локализиране на ресурса чрез описание на основния механизъм за достъп до него (например, неговото мрежово "местоположение"). Терминът "Uniform Resource Name" (URN) е използван в миналото за обозначаване както на URI под "urn" схема [RFC2141], от които се изисква да останат глобално уникални и постоянни, дори когато ресурсът престане да съществува или стане недостъпен, както и към всеки друг URI със свойствата на име.

Така че всички URL адреси са URI (всъщност не съвсем - вижте по-долу), а всички URN адреси са URI адреси - но URN адресите и URL адресите са различни, така че не може да се каже, че всички URI адреси са URL адреси.

EDIT: Преди смятах, че всички URL са валидни URI, но както е според коментарите:

Не "всички URL адреси са URI". Това зависи от тълкуването на RFC. Например в Java парсерът на URI не харесва [ или ] и това е така, защото спецификацията казва "should not", а не "shall not".

Така че за съжаление това допълнително размъти водата.

Ако все още не сте прочели отговора на Roger Pate's, бих ви посъветвал да го направите също.

Коментари (20)

Те са едно и също нещо. URI е обобщение на URL. Първоначално се планираше URI да се разделят на URL (адреси) и URN (имена), но тогава нямаше голяма разлика между URL и URI и http URI се използваха като пространства за имена, въпреки че всъщност не локализираха никакви ресурси.

Коментари (4)

Тук ще намерите цялата необходима информация от Уикипедия. Цитат от http://en.wikipedia.org/wiki/URI:

URL е URI, който освен че идентифицира даден ресурс, предоставя средства за действие или получаване на представяне на ресурса, като описва неговия основен механизъм за достъп или мрежово "местоположение".

Коментари (0)