Ludzie mówią o URL, URI i URN, jakby to były różne rzeczy, ale gołym okiem widać, że wyglądają tak samo.
Jakie są między nimi różnice?
Z RFC 3986:
URI może być dalej sklasyfikowany jako lokalizator, nazwa lub oba. Strona termin "Uniform Resource Locator" (URL) odnosi się do podzbioru URI które, oprócz identyfikacji zasobu, dostarczają środków do lokalizację zasobu poprzez opisanie jego podstawowego mechanizmu dostępu (np. jego sieciową "lokalizację"). Termin "Uniform Resource Name" (URN) był historycznie używany w odniesieniu do obu URI w ramach "urn". schematu "urn" [RFC2141], od których wymaga się, aby pozostawały globalnie unikatowe i trwałe, nawet gdy zasób przestanie istnieć lub stanie się oraz do każdego innego URI o właściwościach nazwy.
Tak więc wszystkie adresy URL to URI (w rzeczywistości nie do końca - patrz poniżej), a wszystkie URN to URI - ale URN i URL są różne, więc nie można powiedzieć, że wszystkie URI to URL.
EDYTOWAĆ: Wcześniej myślałem, że wszystkie adresy URL są ważnymi adresami URI, ale zgodnie z komentarzami:
Not "wszystkie adresy URL są URIs". Zależy to od interpretacji RFC. Na przykład w Javie parser URI nie lubi
[
lub]
, a to'dlatego, że spec mówi "should not", a nie "shall not".
Więc to zamula wody dalej, niestety.
Jeśli jeszcze nie przeczytałeś Roger Pate's answer, radziłbym to zrobić również.
Są one'to samo. URI jest uogólnieniem adresu URL. Pierwotnie URI miały być podzielone na URL (adresy) i URN (nazwy), ale wtedy różnica między URL a URI była niewielka, a http URI były używane jako przestrzenie nazw, mimo że w rzeczywistości nie lokalizowały żadnych zasobów.
Wikipedia dostarczy wszystkich informacji, których potrzebujesz. Cytaty ze strony http://en.wikipedia.org/wiki/URI:
Adres URL to URI, który oprócz identyfikacji zasobu, dostarcza środków działania na lub uzyskania reprezentacji zasobu poprzez opisanie jego podstawowego mechanizmu dostępu lub sieciowej "lokalizacji".