Hvad er forskellen mellem en URI, en URL og et URN?

Folk taler om URLs, URIs og URNs, som om de er forskellige ting, men de ser ens ud for det blotte øje.

Hvad er de tydelige forskelle mellem dem?

Løsning

Fra RFC 3986:

En URI kan yderligere klassificeres som en locator, et navn eller begge dele.
udtrykket "Uniform Resource Locator" (URL) henviser til den delmængde af URI'er der ud over at identificere en ressource også giver mulighed for at lokalisering af ressourcen ved at beskrive dens primære adgangsmekanisme (f.eks. dens netværks- "placering"). Udtrykket "Uniform Resource Name" (URN) er historisk set blevet brugt til at henvise til både URI'er under urn" skemaet[ [RFC2141]]]2, som skal forblive globalt unikke og vedvarende, selv når ressourcen ophører med at eksistere eller bliver ikke er tilgængelig, og til enhver anden URI med et navns egenskaber.

Så alle URL'er er URI'er (faktisk ikke helt - se nedenfor), og alle URN'er er URI'er - men URN'er og URL'er er forskellige, så man kan ikke sige, at alle URI'er er URL'er.

EDIT: Jeg havde tidligere troet, at alle URL'er er gyldige URI'er, men som i kommentarerne:

Not "alle URL'er er URI'er". Det afhænger af fortolkningen af RFC'en. I Java kan URI-parseren f.eks. ikke lide [ eller ], og det er fordi specifikationen siger "should not" og ikke "shall not".

Så det gør det desværre endnu mere uklart.

Hvis du ikke allerede har læst Roger Pate's svar, vil jeg råde dig til at gøre det også.

Kommentarer (20)

De er det samme. En URI er en generalisering af en URL. Oprindeligt var det planen, at URI'er skulle opdeles i URL'er (adresser) og URN'er (navne), men dengang var der ikke meget forskel på en URL og en URI, og http-URI'er blev brugt som navnerum, selv om de faktisk ikke lokaliserede nogen ressourcer.

Kommentarer (4)

Wikipedia giver dig alle de oplysninger, du har brug for her. Citat fra http://en.wikipedia.org/wiki/URI:

En URL er en URI, der ud over at identificere en ressource også giver mulighed for at handle på eller opnå en repræsentation af ressourcen ved at beskrive dens primære adgangsmekanisme eller netværkets "placering".

Kommentarer (0)